Skip to main content

ApostropheCMS CVE-2026-113653

| EUVDEUVD-2026-105181 MEDIUM
Incorrect Authorization (CWE-863)
2026-10-20 GitHub_M GHSA-xf6w-q65w-4f2w
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify public page or API exposing user relationship
  2. Exploit
    Send unauthenticated request
  3. Impact
    Harvest 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.

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

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

Alert me

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

Apostrophe < 4.33.0

Affected Packages

npm apostrophe fix: 4.33.0

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

Vendor (GitHub_M) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 20, 2026 - 18:17 EUVD

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
niche open-source Node.js CMS, limited enterprise deployment footprint
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

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.4%
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
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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