Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify public page or API exposing user relationship
-
ExploitSend unauthenticated request
-
ImpactHarvest disclosed user fields
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation 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 a developer has exposed user objects to anonymous visitors - specifically through a publicly rendered relationship OR an expressly enabled public API - AND uses inadequately limited templates that serialize the entire related user object. This is explicitly NOT a default configuration: relationships do not automatically publish full user objects, so a vanilla install is not affected. Limiting factors: disclosure is conditional on these developer choices, is read-only, and password hashes are stored separately and never disclosed. Where the exposure exists, no authentication is required (CVSS PR:N) and attack complexity is low. |
| Impact | This is a broken-access-control / improper-authorization issue (CWE-863) in ApostropheCMS where viewRole is not enforced for anonymous visitors when a developer has deliberately exposed user objects through a publicly rendered relationship or an expressly enabled public API. The input provides only a CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L, base 6.9) indicating unauthenticated network reach with low complexity - but the impact claim is internally inconsistent with the description, which describes ONLY conditional disclosure of user fields (a confidentiality concern), with no integrity or availability effect; the VI:L/VA:L metrics appear overstated and should be treated as confidentiality-only. No EPSS score, no CISA KEV listing, and no POC were supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Crucially, exploitation is NOT a default-configuration flaw: the description explicitly states relationships do not automatically publish full user objects and that disclosure is 'conditional' on a developer exposing users and using inadequately limited templates. This materially lowers real-world risk below what the 6.9 'medium-high' score suggests - it is a conditional info-leak dependent on specific developer choices, and password hashes are explicitly unaffected. Treat as a real but situational data-exposure issue, not a broadly exploitable priority. |
| Exploit ScenarioDerived | In a site where a developer has published a relationship or enabled a public API that serializes an entire related user object, an anonymous attacker simply requests the rendered page or public API endpoint and reads user fields (e.g., usernames, emails, profile metadata) that viewRole should have restricted. No authentication or user interaction is needed given AV:N/PR:N/UI:N, but the attack only works where that exposure has been configured. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
ApostropheCMS versions prior to 4.33.0 fail to enforce the viewRole permission for anonymous visitors, allowing user-object fields to be disclosed when a developer has deliberately published user documents through a rendered relationship or an expressly enabled public API. The exposure is unauthenticated and low-complexity where it exists, but it is conditional on developer configuration - relationships do not automatically publish full user objects, and password hashes are stored separately and are never disclosed - so a default installation is not affected. The issue is fixed in 4.33.0; no public exploit code and no confirmed active exploitation were identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade ApostropheCMS to 4.33.0, per https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0 and the advisory at https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-xf6w-q65w-4f2w. If upgrading cannot be done immediately, audit every relationship and public API projection that can reach a user piece and either remove it from anonymously rendered pages or replace full-object serialization in templates with an explicit whitelist of non-sensitive fields (for example display name or title only) - the trade-off is that any feature relying on the omitted fields will render blanks or need a template rework. Where a public API is enabled for user data, disable that option until the upgrade is applied, accepting that legitimate anonymous consumers of that endpoint will break. Because the flaw is authorization-side and read-only, log and alert on anonymous requests that return user records in the interim; note that password hashes live in a separate store and are not reachable through this path, so credential rotation is not required by this CVE alone.
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 a Node.js content management system that persists content in MongoDB and renders pages server-side, commonly with Nunjucks templates. Its content model is built from 'pieces' (reusable document types such as users) joined by relationship fields, and each piece type carries an authorization setting such as viewRole that determines which visitors may read it. The defect is an incorrect-authorization problem (CWE-863): when user pieces are reachable from a published document through a relationship, or are surfaced through a public API that a developer has explicitly enabled, the viewRole check is not applied on behalf of unauthenticated visitors, so templates that serialize an entire related user object can emit fields that should have been filtered. The CPE cpe:2.3:a:apostrophecms:apostrophe:*:*:*:*:*:*:*:* confirms every npm release before 4.33.0 is in scope. Impact is bounded by design: relationships do not automatically expand into full user documents, so exploitation requires a template or projection that deliberately serializes the whole object, and hashes live in a separate storage path that this flaw does not reach - meaning credential material is out of scope and the realistic outcome is selective disclosure of profile-type fields.
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:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Anonymous network read of exposed user fields gives AV:N/PR:N and low confidentiality; the flaw neither modifies data nor affects availability, so I:N/A:N (contradicting the input's VI:L/VA:L).
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, viewRole is not applied to anonymous visitors when a developer exposes user objects through a publicly rendered relationship or expressly enabled public API. Inadequately limited templates, including serialization of an entire related user object, can conditionally disclose user fields, but relationships do not automatically publish full user objects and password hashes are stored separately and are not affected. 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-105181
GHSA-xf6w-q65w-4f2w
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB