medium

CVE-2026-113668

npm · apostrophe

Summary

ApostropheCMS: :_id/locales REST route omits the public-API authorization gate its sibling read routes enforce (unauthenticated doc-existence + locale metadata disclosure)

Severity
medium
CVSS
5.3
EPSS
0.3% (p25)
CWE
CWE-200, CWE-862
Also known as
GHSA-gqh3-7856-rjjg
Published
2026-10-20
Updated
2026-10-20

Advisory details

Summary

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.

Affected

Technical detail

Impact

An unauthenticated caller can confirm the existence of a document by _id and enumerate its locales/publication state — information the read-API is meant to gate. Defensibly 4.3 (AC:H) given the opaque _id precondition (the caller needs a document id).

How it was verified (local only)

Reproduced against apostrophe@4.32.2 (== commit d3ff8c9) locally with synthetic content:

Remediation

Add the publicApiCheckAsync (or equivalent) authorization gate to the :_id/locales route in both the piece-type and page modules, matching the sibling read routes, so the locale/existence metadata is only returned to callers permitted by the public-API policy.

Credit

Please credit Santosh Kumar Puppala (https://github.com/Santoshkumarpuppala).

References

Related advisories

Is your project exposed to this? Stateward checks every dependency on every pull request and flags it only if your code actually reaches it.

Check my repo

Summarize with AI

ChatGPTClaudePerplexity

Sources: CISA KEV (public domain), OSV.dev & GitHub Advisory Database (CC-BY-4.0), FIRST EPSS, NVD/CWE (public domain). Served live from the Stateward advisory database.