# CVE-2026-113670: ApostropheCMS page REST API authorization bypass

Source: https://junglewise.ai/threats/cve-2026-113670-apostrophecms-page-rest-api-authorization-bypass  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-20. Updated: 2026-10-20  
License: CC BY 4.0 with a link back

CVE-2026-113670 · Severity: medium · CVSS 5.3 · Published 2026-10-20

ApostropheCMS is a headless content management system used to manage and publish web page content. The page REST API fails to enforce access controls on private, login-required, and admin-only pages, allowing unauthenticated visitors and low-privilege users to read sensitive page content and discover the complete site structure. An attacker can enumerate page IDs and retrieve full page documents including restricted data fields.

Technologies: [ApostropheCMS](https://junglewise.ai/threats/technologies/apostrophecms), [apostrophe (npm)](https://junglewise.ai/threats/technologies/apostrophe). Vendors: [ApostropheCMS](https://junglewise.ai/threats/vendors/apostrophecms), [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2026-113670 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-113670 being exploited in the wild.

**How severe is CVE-2026-113670?** Medium severity, with a CVSS score of 5.3, published 20 October 2026.

**Which products and versions are affected?** apostrophe (npm) < 4.33.0.

**Is there a fix for CVE-2026-113670?** No fixed version is recorded yet. Remove `.permission(false)` from the `getOne` and `all` handlers or re-apply the page type's `viewRole` threshold and `visibility` filters to match the behavior of the list and autocomplete REST endpoints; make `publicApiCheck` perform explicit authorization checks per REST verb.</anigation>
</invoke> If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-113670 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-113670?** Check whether you run ApostropheCMS or apostrophe (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix


Remove `.permission(false)` from the `getOne` and `all` handlers or re-apply the page type's `viewRole` threshold and `visibility` filters to match the behavior of the list and autocomplete REST endpoints; make `publicApiCheck` perform explicit authorization checks per REST verb.</anigation>
</invoke>

## Technical details

The `getOne` and `all` REST API handlers in the page module call `getRestQuery(req).permission(false)`, which disables permission checks and bypasses the page type's `viewRole` threshold and `visibility` filters. The `publicApiCheckAsync` function only verifies that a `publicApiProjection` exists but performs no authorization; this differs from the piece-type API's correct implementation, which enforces role-based access. Unauthenticated HTTP requests and authenticated low-privilege users can directly query pages by `_id` or slug and obtain full documents with protected fields.

## Affected products

- ApostropheCMS ApostropheCMS

## Identifiers

- CVE-2026-113670
- GHSA-2j32-q6rx-h844

## Timeline

- 2026-10-20: disclosed

## Related threats

- [ApostropheCMS unauthenticated file upload in import routes](https://junglewise.ai/threats/cve-2026-113711-apostrophecms-is-an-open-source-node-js-content-management)
- [ApostropheCMS password-change endpoint lacks attempt throttling](https://junglewise.ai/threats/cve-2026-113710-apostrophecms-no-attempt-throttling-on-authenticated-password)
- [ApostropheCMS cross-domain session token in URL confers session takeover](https://junglewise.ai/threats/cve-2026-113669-apostrophecms-cross-domain-session-token-in-url-confers-session)
- [ApostropheCMS REST route authorization bypass in locales endpoint](https://junglewise.ai/threats/cve-2026-113668-apostrophecms-id-locales-rest-route-omits-the-public-api)
- [ApostropheCMS db-connect prototype pollution denial of service](https://junglewise.ai/threats/cve-2026-113666-apostrophecms-authenticated-projection-exclusion-prototype)
