Description
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.
Published: 2026-04-15
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure
Action: Apply Patch
AI Analysis

Impact

ApostropheCMS (a Node.js content management system) contains an authorization bypass vulnerability in the REST API's choices and counts query parameters. The vulnerability arises because these query builders invoke MongoDB's distinct() operation before the publicApiProjection restrictions are applied. As distinct() ignores projections, an unauthenticated attacker can retrieve all distinct values for any schema field that supports a query builder, including string, integer, float, select, boolean, date, slug, and relationship fields. The results bypass both publicApiProjection and removeForbiddenFields, exposing protected data and, in the case of counts, revealing how many documents hold each value. This results in a direct information disclosure that compromises confidentiality for any exposed fields.

Affected Systems

Impact extends to all ApostropheCMS installations employing version 4.28.0 or earlier, covering both piece-type and page REST APIs. The vulnerability is resolved in version 4.29.0, which properly applies projection rules before executing distinct queries. Therefore, any deployment using the enumerated vulnerable versions is susceptible until upgraded or otherwise mitigated.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate severity, and the EPSS score is unavailable, so the current exploitation probability is unknown but potentially significant due to the ability to reach the vulnerable endpoint without authentication. Since the vulnerability is not listed in the CISA KEV database, there is no public record of exploitation yet; however, the lack of access controls on the affected query parameters constitutes an obvious attack vector for attackers seeking sensitive data. The risk grows with the number of publicly exposed API endpoints and the amount of sensitive fields registered for query building.

Generated by OpenCVE AI on April 15, 2026 at 21:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade immediately to ApostropheCMS version 4.29.0 or later, which implements correct projection enforcement.
  • If upgrade is delayed, restrict or remove the choices and counts query parameters from the REST API by configuring the system to disallow these builders or by adding middleware that validates and blocks unauthorized access to them.
  • Verify that publicApiProjection and removeForbiddenFields are correctly configured to limit exposed fields, and audit the list of fields that are registered with query builders.

Generated by OpenCVE AI on April 15, 2026 at 21:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-c276-fj82-f2pq ApostropheCMS: Information Disclosure via choices/counts Query Parameters Bypassing publicApiProjection Field Restrictions
History

Thu, 16 Apr 2026 14:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 16 Apr 2026 09:15:00 +0000

Type Values Removed Values Added
First Time appeared Apostrophecms
Apostrophecms apostrophecms
Vendors & Products Apostrophecms
Apostrophecms apostrophecms

Wed, 15 Apr 2026 20:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Information Disclosure via `choices`/`counts` Query Parameters Bypassing publicApiProjection Field Restrictions
Weaknesses CWE-200
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N'}


Subscriptions

Apostrophecms Apostrophecms
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-16T13:40:17.710Z

Reserved: 2026-04-07T19:13:20.379Z

Link: CVE-2026-39857

cve-icon Vulnrichment

Updated: 2026-04-16T13:40:08.605Z

cve-icon NVD

Status : Received

Published: 2026-04-15T20:16:36.567

Modified: 2026-04-16T14:16:14.797

Link: CVE-2026-39857

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-16T09:00:05Z

Weaknesses