Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with import+edit permission
-
ExploitSubmit import with operator as update-key
-
ExecutionQuery matches unintended editable document
-
ImpactOverwrite target document content
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated ApostropheCMS account that (1) has been granted import access to a specific document type via the import-export module, and (2) already holds generic edit permission on candidate documents of that type. The attacker must supply an object or MongoDB operator in place of a scalar update-key value in the import payload. Key LIMITING factors: the findForEditing permission filter constrains matches to documents the attacker can already edit, so no protected/arbitrary content outside their edit scope can be overwritten; the specific document matched is unidentified/not attacker-controlled, limiting precision; and both import access and edit permission are prerequisites, excluding anonymous or low-privilege users. Only affects import-export module versions prior to 3.7.0. |
| Impact | This is a genuine but moderate-priority access-control flaw (CWE-284), not a critical issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, base 5.4) correctly reflects that exploitation is network-reachable but requires an authenticated account (PR:L) that already holds import access AND generic edit permission on the target document type. No EPSS score, KEV listing, or public POC is present in the input, so there is no signal of active or imminent widespread exploitation - exploitation status is 'no public exploit identified at time of analysis.' The 'Authentication Bypass' tag overstates the issue: the description explicitly states the normal findForEditing permission filter still constrains which documents can be matched, so this is NOT a permission-free overwrite of protected content - it is a privileged user being able to redirect an import update toward an unintended (but already editable-to-them) document via a NoSQL operator/object injected as an update-key value. The C:N rating is consistent with the description (no data disclosure). The A:L rating is debatable - the mechanism is content modification/overwrite, which is primarily an integrity concern; verify whether availability impact truly applies. Overall: a legitimate authorization-logic bug worth patching, but the authenticated precondition and permission filter sharply limit real-world blast radius - this is a routine-priority fix, not an emergency. |
| Exploit ScenarioDerived | An authenticated ApostropheCMS user who has been granted import access to a document type crafts an import payload supplying a MongoDB object or operator (rather than a scalar value) as the update-key. The malformed query matches an existing document the attacker holds generic edit rights to but did not intend/was not supposed to specifically target, causing that document's content to be overwritten by the import data. No public exploit code is identified in the provided data; the attack requires valid credentials and pre-existing import+edit permissions. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
The import-export module of ApostropheCMS, in versions prior to 3.7.0, allows an authenticated user who has been granted import access to a document type to supply an object or query operator where a scalar update-key value is expected, so the generated import query matches an existing document the attacker did not deliberately select. Because the normal findForEditing permission filter still applies and the matched document is not attacker-controlled, the overwrite is limited to content the user already has generic edit rights over - there is no bypass into protected or arbitrary content. Both import access and edit permission on the affected type are prerequisites, and only import-export releases below 3.7.0 are affected; no public exploit has been identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade @apostrophecms/import-export to 3.7.0, which is the version referenced in the release tag and in commits 9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and f84fd41cbf6c22eb8d0008fc9c25df1f7130b350; consult GHSA-jqw5-w6h3-44g6 for the authoritative fix guidance. Until the upgrade is applied, the highest-value compensating control is to stop granting import access to anyone who does not strictly need it, since import permission on a document type is a hard prerequisite for the attack - the trade-off is that legitimate bulk content migration by editors must be routed through an administrator or a temporary permission grant. A second option is to constrain generic edit permissions on sensitive document types so that fewer documents fall inside any single user's findForEditing candidate set, which reduces blast radius but also reduces normal editorial throughput. Teams that must keep import enabled can pre-validate or normalize import payloads so update-key fields are coerced to scalars and any object or operator value is rejected, at the cost of maintaining a custom validation layer in front of the module. Restricting access to the import endpoints at the reverse proxy or WAF to trusted networks is possible but breaks remote editorial workflows. Because the matched document is not attacker-selected and the permission filter still applies, emergency site takedown is not warranted; prioritize the upgrade normally.
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 content management system that persists content in MongoDB, and its @apostrophecms/import-export module builds update queries from user-supplied import payloads. The flaw is classified CWE-284 (Improper Access Control): the module accepts a non-scalar value - a JSON object or a MongoDB-style operator - in the position where it expects a plain update-key scalar, and that value is used to construct the query that identifies which existing document should be updated. This is a query-construction/permission-scoping weakness rather than a raw injection into an unprotected collection: the framework's findForEditing permission filter is still applied to the candidate set, which is why the practical impact is restricted to documents within the actor's pre-existing edit scope, and why the specific document matched is indeterminate. The relevant CPE entries are cpe:2.3:a:apostrophecms:apostrophe:*:*:*:*:*:*:*:* and cpe:2.3:a:@apostrophecms:import-export:*:*:*:*:*:*:*:*, reflecting that the vulnerable code ships as a module inside the larger Apostrophe monorepo. Per the independent assessment the realistic effect is low-integrity impact only (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), with no confidentiality exposure and no availability impact, and exploitation is gated on authenticated accounts that already hold import privileges for the target type.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Network-reachable import endpoint (AV:N) but requires an authenticated user with import+edit rights (PR:L); impact is unintended document content modification (I:L), with no disclosure (C:N) and no genuine availability loss (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.0 of the import-export module, an authenticated user with import access to a target type can supply an object or operator as an update-key value, causing the import query to match an unidentified existing document that the user has generic edit permission to modify. The normal findForEditing permission filter still limits the candidate documents, so the issue does not permit permission-free overwrite of arbitrary protected content. This issue is fixed in version 3.7.0.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-105210
GHSA-jqw5-w6h3-44g6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB