Skip to main content

ApostropheCMS EUVDEUVD-2026-105216

| CVE-2026-113668 MEDIUM
Information Exposure (CWE-200)
2026-10-20 GitHub_M GHSA-gqh3-7856-rjjg
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach public ApostropheCMS REST endpoint
  2. Exploit
    Request /locales route for candidate _id
  3. Execution
    Bypass missing publicApiCheckAsync gate
  4. Impact
    Harvest document existence and locale metadata

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitable against default ApostropheCMS deployments prior to 4.33.0 because the GET /api/v1/<piece-type>/:_id/locales route (and the equivalent page route) omits the publicApiCheckAsync gate that other read routes enforce - no special feature toggle or non-default configuration is needed. Exploitation is unauthenticated (PR:N) and requires no user interaction (UI:N). The practical limit is impact scope, not access: the attacker must supply or guess a document _id and only learns that document's existence and published locales, not its contents; integrity and availability are unaffected. Sites fronted by authentication/WAF controls on the REST API, or already upgraded to 4.33.0, are not exposed.

Impact

The signals are consistent with a genuine but low-severity information-disclosure issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N = 5.3 Medium) indicates a network-reachable, low-complexity, unauthenticated flaw with only limited confidentiality impact and no integrity or availability effect - matching the description precisely (CWE-200, document-existence and locale-metadata disclosure). No EPSS score, SSVC decision, KEV listing, or public POC was supplied in the input; per the precision rules this means no public exploit is identified at time of analysis and exploitation is not confirmed in the wild. There is no conflict between the CVSS vector and the description: both agree on unauthenticated network access with confined read-only impact. The missing automatable/technical-impact SSVC data and absent EPSS probability should be noted - real-world exploitation likelihood cannot be quantified from the provided data - but the intrinsic ceiling is low because the attacker only learns whether a given document _id exists and which locales it is published in, not the document contents. Priority is therefore low-to-moderate: patch in routine maintenance rather than emergency, unless an environment treats document-ID/locale enumeration as sensitive reconnaissance.

Exploit ScenarioDerived

An unauthenticated attacker scripts requests to GET /api/v1/<piece-type>/:_id/locales (or the equivalent page route) against a target ApostropheCMS site, iterating candidate document _id values. The route skips the publicApiCheckAsync gate, so each response reveals whether that document exists and which locales it is published in, letting the attacker map hidden or draft content and localization structure. No public exploit code is identified at time of analysis; the attack requires only standard HTTP requests given the AV:N/AC:L/PR:N/UI:N vector.

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

Unauthenticated information disclosure in ApostropheCMS prior to 4.33.0 lets remote attackers probe the REST endpoint GET /api/v1/<piece-type>/:_id/locales (and the equivalent page route) to determine whether an arbitrary document _id exists and which locales it is published in. The route omits the publicApiCheckAsync gate that other read routes enforce, so the read-API's intended gating is bypassed by default with no special configuration, though only existence and locale metadata leak - not document contents - leaving confidentiality impact Low and integrity/availability unaffected. There is no public exploit code or confirmed active exploitation at time of analysis, and the practical risk is reconnaissance value (enumerating valid IDs and site localization footprint) rather than data theft.

RemediationAI

Vendor-released patch: upgrade ApostropheCMS to 4.33.0 or later (release tag https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0), which routes the locale endpoints through the publicApiCheckAsync gate; see advisory GHSA-gqh3-7856-rjjg for details, and review the commits at https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350 to verify the change or backport it if a full upgrade is not immediately possible. If patching must be deferred, compensating controls are: add a WAF or reverse-proxy rule rejecting GET requests matching /api/v1/*/*/locales (trade-off: legitimate front-end locale-switching calls for anonymous users would also break unless allowlisted, and regex routing must be tuned to avoid blocking unrelated nested paths); or require authentication at the edge for the entire /api/v1/ surface (trade-off: any headless or public read consumers must switch to credentialed access); or, for sites that do not use the public read API at all, disable it in configuration so the policy gate intent is enforced defensively (trade-off: requires verifying no client depends on anonymous reads). Because exploitation only reveals whether a document _id exists and its published locales, there is no data-integrity cleanup to perform, but reviewing access logs for enumeration-style sweeps of many distinct _id values against these endpoints is a reasonable detection step.

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 an open-source Node.js/Express content management system backed by MongoDB, and it exposes a versioned REST read API under /api/v1/. Internally, read routes are wrapped by the publicApiCheckAsync middleware, which enforces the site's public-API policy (whether anonymous reads are permitted, and what may be returned). Two sibling routes - GET /api/v1/<piece-type>/:_id/locales for pieces and the analogous page route - were registered without that wrapper, so requests for an arbitrary _id reach the locale-lookup logic directly instead of short-circuiting. The result is classified as CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the endpoint answers a binary existence question and returns the document's published locale list, which is metadata the API is otherwise meant to withhold when public API access is disabled or restricted. Because the flaw is a missing authorization/policy check rather than a memory-safety or injection bug, exploitation is trivial (AC:L), remote (AV:N), unauthenticated (PR:N), and requires no user interaction (UI:N); the ceiling on impact is the Low confidentiality rating (C:L) since document bodies, credentials, and write paths are untouched. Fixes landed as upstream commits that route these handlers through the publicApiCheckAsync gate, shipped in the 4.33.0 release.

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.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

Unauthenticated network HTTP request (AV:N/AC:L/PR:N/UI:N) to a routinely reachable endpoint; only metadata is leaked so C:L with I:N/A:N and no scope change.

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
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

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 4.33.0, the REST route GET /api/v1/<piece-type>/:_id/locales (and the equivalent page route) does not apply the publicApiCheckAsync gate that ApostropheCMS's other read routes enforce. An unauthenticated caller can therefore query this route for any document _id and learn whether the document exists and which locales it is published in - a document-existence and locale-metadata disclosure that the read-API is otherwise supposed to gate. This issue is fixed in version 4.33.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% 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
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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