Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid notification ID (MongoDB ObjectId)
-
ExploitSend unauthenticated PATCH/DELETE to notification endpoint
-
ImpactModify or permanently delete victim's notification
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation targets the PATCH and DELETE REST endpoints of the ApostropheCMS notification module in versions prior to 4.33.0, which operate directly on the MongoDB notifications collection with no authentication or ownership check. The concrete prerequisite is possession of a valid target notification ID; because these IDs are MongoDB ObjectIds that are not easily enumerable or guessable, this is the primary limiting factor and the reason CVSS assigns AC:H. No authentication is required (CVSS PR:N) and no user interaction is needed (UI:N). Impact is confined to tampering with or deleting another user's notifications - there is no confidentiality exposure and no service-level denial. Affected deployments are any ApostropheCMS 4.x installation below 4.33.0 running the default notification module. |
| Impact | This is a genuinely low-priority issue whose signals are internally consistent rather than conflicting. The CVSS 3.1 base score of 3.7 (LOW) is driven by AV:N/PR:N/UI:N (network-reachable, unauthenticated, no user interaction) but tempered by AC:H and a limited impact of C:N/I:L/A:N. The AC:H is the key qualifier: exploitation requires the attacker to first obtain a *valid* notification ID (a MongoDB ObjectId that is not readily enumerable), which is why this is not scored as a trivial unauthenticated flaw despite PR:N. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of exploitation probability or active abuse - the absence of these signals is consistent with a low-value, hard-to-weaponize IDOR. The impact ceiling is narrow: an attacker can tamper with or delete another user's UI notifications (I:L), not read confidential data (C:N) or deny service (A:N). CWE-639 (authorization bypass through user-controlled key / IDOR) matches the description precisely. Net: a real but minor authorization defect, correctly rated LOW; patch during normal maintenance, not an emergency. One caveat: the description says notifications can be *permanently* deleted, which one could argue nudges toward a minor availability impact on that data - NVD scored A:N, treating deletion as an integrity effect, which is defensible. |
| Exploit ScenarioDerived | An unauthenticated attacker who learns or otherwise obtains a valid notification ID submits a crafted PATCH or DELETE request directly to ApostropheCMS's notification REST endpoint, which performs the MongoDB operation without checking authentication or ownership. The result is that another user's notification is silently modified or permanently deleted. No public exploit is identified at time of analysis, and the high attack complexity reflects the need to acquire a non-enumerable notification ID first. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Unauthenticated modification and deletion of other users' notifications is possible in ApostropheCMS versions prior to 4.33.0, because the notification module's PATCH and DELETE REST endpoints act directly on the underlying MongoDB collection without verifying that the requester is authenticated or that they own the target document. The practical barrier is knowledge of a valid notification ID: these are MongoDB ObjectIds, so they are not readily enumerable, which is why the vector carries AC:H despite PR:N and UI:N. Impact is limited to integrity of notification records (no confidentiality exposure and no availability impact), and no public exploit code has been identified at time of analysis; the issue is fixed in 4.33.0.
RemediationAI
Upgrade to ApostropheCMS 4.33.0 (release tag apostrophe@4.33.0), which contains the authorization fix; the relevant upstream changes are commits 9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and f84fd41cbf6c22eb8d0008fc9c25df1f7130b350, and full details are in advisory GHSA-vwwx-px9w-crrc. If an immediate upgrade is not feasible, the practical compensating control is to require authentication for the notification endpoints at the edge - for example, a reverse-proxy or middleware rule that rejects unauthenticated PATCH and DELETE requests to the notification module's REST routes while leaving read paths intact; the trade-off is that any legitimate anonymous notification polling will break, and the rule must be kept in sync with route naming across Apostrophe versions. A blunter option is to disable or unregister the notification module on instances that do not use it, at the cost of losing in-application notification delivery. Because exploitation depends on possessing a valid notification ObjectId, treat notification IDs as sensitive in logs, error pages, and client-side state while patches are being rolled out.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
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 backed by MongoDB. Its notification module exposes REST handlers for PATCH and DELETE requests that resolve the notification identifier supplied by the client and then perform the update or removal straight against the MongoDB notifications collection, skipping the authorization layer that would normally confirm the caller is logged in and is the owner of that record. This maps to CWE-639 (Authorization Bypass Through User-Controlled Key): the notification ID in the request is an attacker-controllable key that is trusted as proof of entitlement. Because MongoDB ObjectIds are 12-byte values (timestamp, machine/process entropy, counter) and are not sequentially enumerable in practice, a successful attack requires prior disclosure or interception of a specific notification ID, which is the concrete prerequisite behind the high attack-complexity rating. The flaw lives in the default notification module, so stock 4.x deployments that have not disabled it are in scope; per the CVSS vector the attacker needs no credentials and no user interaction.
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:H/PR:N/UI:N/S:U/C:N/I:L/A:N
Network-reachable REST endpoint and no authentication give AV:N/PR:N/UI:N, but needing a non-enumerable notification ID forces AC:H; impact is limited to modifying/deleting a notification, so C:N/I:L/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 4.33.0, the notification module exposes PATCH and DELETE REST endpoints that perform operations directly on the underlying MongoDB collection without verifying that the requester is authenticated or owns the target notification. As a result, an unauthenticated attacker who obtains a valid notification ID can modify or permanently delete another user's notification. This issue is fixed in version 4.33.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-105213
GHSA-vwwx-px9w-crrc
NVD
CVE.org
EPSS
Exploit-DB