CVE-2026-112953: ApostropheCMS: Exposure of Sensitive Information via predictable export filenames
When a user exports content through @apostrophecms/import-export, the module copies the generated archive into uploadfs at /exports/ and returns a public URL under /uploads/exports/. The filename is fully deterministic: site shortName, document type, a YYYYMMDDHHmmss timestamp, and the format extension. There is no secret token.
Anyone who can guess that path can download the archive with a normal unauthenticated HTTP GET while the file is still present (10 minutes by default, longer if the site raises importExport.export.expiration). That is a different model from attachment URLs, which rely on hard-to-guess IDs.
Sites that disable export, store uploads on a private backend with no anonymous read, or serve /uploads only behind authentication are not hit by the network download step—but the predictable naming is still a design flaw for the default local/public uploadfs layout.
Import-only workflows and imports themselves are out of scope; this is specific to the export download URL.
References
- github.com/advisories/GHSA-5gc8-frw3-3vqm
- github.com/apostrophecms/apostrophe/commit/06e4b377f3c360f9e89c32dccd7e505ad5ddf498
- github.com/apostrophecms/apostrophe/commit/40b989b1a9dd23d30029b8ce7668634265cfe5ea
- github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/import-export@3.7.1
- github.com/apostrophecms/apostrophe/security/advisories/GHSA-5gc8-frw3-3vqm
- nvd.nist.gov/vuln/detail/CVE-2026-112953
Code Behaviors & Features
Detect and mitigate CVE-2026-112953 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →