Skip to main content

ApostropheCMS CVE-2026-113662

| EUVDEUVD-2026-105210 MEDIUM
Improper Access Control (CWE-284)
2026-10-20 GitHub_M GHSA-jqw5-w6h3-44g6
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with import+edit permission
  2. Exploit
    Submit import with operator as update-key
  3. Execution
    Query matches unintended editable document
  4. Impact
    Overwrite 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Apostrophe < 4.33.0
import-export < 3.7.0

Affected Packages

npm @apostrophecms/import-export fix: 3.7.0
euvd apostrophe fix: 4.33.0
euvd import_export fix: 3.7.0

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

Vendor (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
vuln.today AI 4.3 MEDIUM

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).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
Low

Lifecycle Timeline

1
Patch available
Oct 20, 2026 - 19:03 EUVD

DescriptionCVE.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

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
niche open-source Node.js CMS, limited enterprise footprint
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-63669 MEDIUM POC
6.5 Aug 17

Integrity bypass in ApostropheCMS page management allows authenticated low-privileged editors to move pages into restric

CVE-2026-63670 MEDIUM POC
6.1 Aug 17

Stored cross-site scripting in ApostropheCMS prior to 2.17.6 enables execution of arbitrary JavaScript in victim browser

CVE-2014-125128 MEDIUM POC
6.1 Sep 08

'sanitize-html' prior to version 1.0.3 is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1), th

CVE-2019-25225 MEDIUM POC
6.1 Sep 08

`sanitize-html` prior to version 2.0.0-beta is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1

CVE-2021-25979 CRITICAL
9.8 Nov 08

Apostrophe CMS versions prior to 3.3.1 did not invalidate existing login sessions when disabling a user account or chang

CVE-2026-84371 MEDIUM POC
5.4 Sep 01

Stored XSS in sanitize-html versions 1.9.0 through 2.17.6 allows authenticated low-privileged users to inject executable

CVE-2024-21501 MEDIUM POC
5.3 Feb 24

Versions of the package sanitize-html before 2.12.1 are vulnerable to Information Exposure when used on the backend and

CVE-2021-26540 MEDIUM POC
5.3 Feb 08

Apostrophe Technologies sanitize-html before 2.3.2 does not properly validate the hostnames set by the "allowedIframeHos

CVE-2021-26539 MEDIUM POC
5.3 Feb 08

Apostrophe Technologies sanitize-html before 2.3.1 does not properly handle internationalized domain name (IDN) which co

CVE-2026-53609 CRITICAL
9.1 Jun 12

Prototype pollution in ApostropheCMS versions up to and including 4.30.0 allows an authenticated editor to poison Object

CVE-2026-53608 HIGH
8.7 Jun 12

Stored cross-site scripting in the @apostrophecms/seo plugin (versions ≤1.4.2) allows any user holding the default edito

CVE-2026-35569 HIGH
8.7 Apr 15

Stored cross-site scripting in ApostropheCMS SEO fields permits an authenticated attacker to inject arbitrary JavaScript

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy