CVE-2026-39857
MediumCVSS 5.3Exploitation Probability (EPSS)
Low risk38th percentile - higher than 38% of all known CVEs
Summary
In ApostropheCMS versions 4.28.0 and prior, the choices and counts query parameters in the REST API execute MongoDB distinct() operations that bypass publicApiProjection restrictions. An unauthenticated attacker can extract all distinct field values, including fields protected by viewPermission, and the counts variant reveals document counts per value.
Risk Assessment
Data from fields intended to be hidden from public access may leak, breaching confidentiality and potentially enabling further attacks.
Recommendation
Upgrade ApostropheCMS to version 4.29.0, which fixes the issue.
Other vulnerabilities in ApostropheCMS
See all- CVE-2026-113711High
Prior to ApostropheCMS 4.33.0 and import-export 3.7.0, import routes invoke bigUploadMiddleware without an early authorize callback. Unauthenticated requests can perform upload initialization, chunk storage, temporary processing and attacker-declared cleanup work before the later user check rejects the import.
- CVE-2026-113710Medium
ApostropheCMS prior to 4.33.0 has a self-service password-change endpoint that verifies the current password but does not use the login module's failed-attempt counter, throttle, delay, or lockout mechanism. An attacker with a valid authenticated session can submit repeated guesses for the current password without receiving a lockout or throttle response. This is fixed in version 4.33.0.
- CVE-2026-113670Medium
ApostropheCMS prior to 4.33.0 has its core page REST API read full page documents with .permission(false) in getOne and in the all=1 tree dump, bypassing page-type viewRole, visibility: private, and visibility: loginRequired checks. Unauthenticated visitors and low-privilege contributors can read admin-only and non-public page content by _id/slug. This is fixed in version 4.33.0.
- CVE-2026-113668Medium
ApostropheCMS prior to 4.33.0 has a REST route GET /api/v1/<piece-type>/:_id/locales (and the equivalent page route) that does not apply the publicApiCheckAsync gate enforced by other read routes. An unauthenticated caller can 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 is fixed in version 4.33.0.
- CVE-2026-113667Medium
In the CAPTCHA integrations (Form, login-recaptcha, login-hcaptcha) for ApostropheCMS, the user-supplied response token is interpolated unencoded into the provider verification request. Crafted tokens can smuggle request parameters and disrupt CAPTCHA verification and CAPTCHA-gated forms or login flows. Automated bypass probing is possible, but a successful CAPTCHA bypass or secret disclosure has not been established.
- CVE-2026-113666High
Prior to db-connect 1.1.0 and ApostropheCMS 4.33.0, an account with view-draft access can submit a projection exclusion path that traverses a constructor prototype chain to a shared prototype member when a SQLite, PostgreSQL or multipostgres adapter is used. The unsetNestedField helper then deletes the shared runtime member, causing persistent process-wide integrity and availability effects; the default MongoDB adapter is not affected.
- CVE-2026-113662Medium
In the import-export module of ApostropheCMS before 3.7.0, an authenticated user with import access to a target type can supply an object or operator as an update-key value, causing the import query to match an unidentified existing document that the user has generic edit permission to modify. The normal findForEditing permission filter still limits candidate documents, so the issue does not permit permission-free overwrite of arbitrary protected content.
- CVE-2026-113660Medium
In ApostropheCMS before 4.33.0, the exist-in-locale API allows an authenticated low-privilege user to determine whether restricted documents exist in a specified locale and mode, including draft mode. The endpoint returns localized document identifiers without applying document-level view or edit authorization criteria. The issue is fixed in version 4.33.0.
- CVE-2026-113655Medium
Prior to 4.33.0, an authenticated editor with legitimate edit rights on a pre-existing ordinary page nested under a restricted parent can use the same-parent page move operation to change sibling ranks without create authorization on that parent. The bypass is limited to sibling ordering rather than arbitrary content modification, confidentiality loss, or creation of the restricted nesting.
- CVE-2026-113653Medium
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 password hashes are stored separately and are not affected.
Original NVD description (English source)
ApostropheCMS is an open-source Node.js content management system. Versions 4.28.0 and prior contain an authorization bypass vulnerability in the choices and counts query parameters of the REST API, where these query builders execute MongoDB distinct() operations that bypass the publicApiProjection restrictions intended to limit which fields are exposed publicly. The choices and counts parameters are processed via applyBuildersSafely before the projection is applied, and MongoDB's distinct operation does not respect projections, returning all distinct values directly. The results are returned in the API response without any filtering against publicApiProjection or removeForbiddenFields. An unauthenticated attacker can extract all distinct field values for any schema field type that has a registered query builder, including string, integer, float, select, boolean, date, slug, and relationship fields. Fields protected with viewPermission are similarly exposed, and the counts variant additionally reveals how many documents have each distinct value. Both the piece-type and page REST APIs are affected. This issue has been fixed in version 4.29.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

