Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify ApostropheCMS site with public export storage
-
DeliveryLegitimate user creates content export
-
ExploitDerive predictable archive filename
-
ExecutionRequest archive URL unauthenticated
-
ImpactDownload and exfiltrate exported data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable only when ApostropheCMS is configured with the import-export feature enabled AND export/upload storage is publicly readable (sites with exports disabled, private upload storage, or authenticated upload delivery are NOT exposed). A user holding export permission must first have created an export archive; the attacker then leverages the predictable archive filename to fetch it over the network. The window is bounded - the archive must still exist (not yet expired or removed). These conditions (dependency on a pre-created export, non-default public-storage deployment, and a timing window) are reflected in the CVSS 4.0 AT:P and UI:P metrics and meaningfully reduce real-world exploitability. |
| Impact | This is a genuine but conditional information-disclosure issue (CWE-200) rather than a top-tier emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N) scores 6.0 (Medium): network-reachable and unauthenticated (PR:N), high confidentiality impact (VC:H) but no integrity or availability impact, and critically AT:P plus UI:P - meaning exploitation depends on a precondition outside the attacker's control (a privileged user must have already created an export) and on passive user action. No EPSS score, KEV listing, or POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The signals are internally consistent: a moderate-severity confidentiality leak that is only reachable in a specific configuration. The main limiting factors are that exports must be enabled, upload storage must be publicly readable (sites using private storage or authenticated delivery are not exposed), an export must exist, and the attacker must act within the archive's expiry window. Net: real and worth patching, but not a drop-everything priority absent exploitation data. |
| Exploit ScenarioDerived | On an ApostropheCMS site that uses publicly readable export storage, an authorized editor generates a content export via the import-export module, which is written to storage under a predictable filename. An unauthenticated attacker who can guess or derive that filename requests the archive over the network and downloads another user's exported content before it expires or is purged. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Predictable export archive filenames in the @apostrophecms/import-export module before 3.7.1 let an unauthenticated requester derive and fetch another user's export archive from publicly readable export storage while it still exists. Only deployments with the import-export feature enabled and export/upload storage that is publicly reachable over the network are exposed, and the attacker must time the request inside the window before the archive expires or is cleaned up. Exploitation additionally depends on a user with export permission having already created an archive, so real-world risk is conditional rather than universal; no public exploit code or confirmed active exploitation was identified at time of analysis, though the disclosure yields full read access to exported content (CVSS 4.0 6.0; assessed CVSS 3.1 AV:N/AC:H/PR:N/UI:R/C:H/I:N/A:N).
RemediationAI
Upgrade @apostrophecms/import-export to 3.7.1 (vendor-released patch; see https://github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/import-export@3.7.1), applying the corresponding repository commits 06e4b377f3c360f9e89c32dccd7e505ad5ddf498 and 40b989b1a9dd23d30029b8ce7668634265cfe5ea if you maintain a fork, and consult GHSA-5gc8-frw3-3vqm for the vendor's guidance. Where upgrading must be staged, apply compensating controls that close the anonymous-download path: disable the export feature in the import-export configuration (trade-off: removes content export used for backups and site migrations), or switch export/upload storage to private storage or authenticated upload delivery so archives are only served to the requesting session (trade-off: assets must then be streamed through the application or a signed-URL layer, which removes CDN/edge caching for media and adds server load), or block anonymous requests to the export/archive paths at the reverse proxy while leaving other /uploads media public (trade-off: path rules must be kept in sync with the module's route and filename conventions, and a missed pattern silently leaves the hole open). Also shorten the archive expiry/retention setting and purge existing export archives in public storage, since any archive still present remains retrievable by name.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ApostropheCMS is an open-source Node.js CMS whose import-export module (@apostrophecms/import-export) serializes site content into downloadable archive files, typically written to the configured uploads/export storage and then served back to the browser over an HTTP route. The root cause is CWE-200 (Exposure of Sensitive Information): the generated archive names are predictable rather than unguessable, so the filename itself acts as the only access control on a file that is meant to be delivered only to the user who requested it. When upload/export storage is publicly readable (the permissive deployment mode), anyone who can guess or enumerate the name can retrieve the archive without authenticating, obtaining the full export payload. The CVSS 4.0 vector's AT:P and UI:P metrics reflect that the attack is not free-standing - a privileged user must first trigger an export and the archive must still be present - while PR:N confirms no attacker credentials are needed for the retrieval step. The upstream fix lands in the tagged release @apostrophecms/import-export@3.7.1 and in repository commits 06e4b377f3c360f9e89c32dccd7e505ad5ddf498 and 40b989b1a9dd23d30029b8ce7668634265cfe5ea; those commits bundle a coordinated set of security changesets (authentication and ownership checks on the clean-export/override-duplicates routes, HTML attribute escaping for widget style values and color fields, and a csv-parse 7.x upgrade), indicating the filename-hardening change shipped alongside broader hardening of the same module.
Know when Apostrophecms gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N); AC:H and UI:R because a privileged user must first create the export and the attacker must act within the expiry window; confidentiality-only impact (C:H, I/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, predictable export archive filenames allow an unauthenticated requester to download another user's export from publicly readable export storage before the archive expires or is removed. A user with export permission must first create the archive, and sites with exports disabled, private upload storage, or authenticated upload delivery are not exposed through this network-download path. This issue is fixed in version 3.7.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Apostrophecms
View allIntegrity bypass in ApostropheCMS page management allows authenticated low-privileged editors to move pages into restric
Stored cross-site scripting in ApostropheCMS prior to 2.17.6 enables execution of arbitrary JavaScript in victim browser
'sanitize-html' prior to version 1.0.3 is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1), th
`sanitize-html` prior to version 2.0.0-beta is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1
Apostrophe CMS versions prior to 3.3.1 did not invalidate existing login sessions when disabling a user account or chang
Stored XSS in sanitize-html versions 1.9.0 through 2.17.6 allows authenticated low-privileged users to inject executable
Versions of the package sanitize-html before 2.12.1 are vulnerable to Information Exposure when used on the backend and
Apostrophe Technologies sanitize-html before 2.3.2 does not properly validate the hostnames set by the "allowedIframeHos
Apostrophe Technologies sanitize-html before 2.3.1 does not properly handle internationalized domain name (IDN) which co
Prototype pollution in ApostropheCMS versions up to and including 4.30.0 allows an authenticated editor to poison Object
Stored cross-site scripting in the @apostrophecms/seo plugin (versions ≤1.4.2) allows any user holding the default edito
Stored cross-site scripting in ApostropheCMS SEO fields permits an authenticated attacker to inject arbitrary JavaScript
EUVD-2026-105103
GHSA-5gc8-frw3-3vqm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB