CVE-2026-33888
Full vulnerability record from the local CVENow database.
Description
ApostropheCMS is an open-source Node.js content management system. Versions 4.28.0 and prior contain an authorization bypass vulnerability in the getRestQuery method of the @apostrophecms/piece-type module, where the method checks whether a MongoDB projection has already been set before applying the admin-configured publicApiProjection. An unauthenticated attacker can supply a project query parameter in the REST API request, which is processed by applyBuildersSafely before the permission check, pre-populating the projection state and causing the publicApiProjection to be skipped entirely. This allows disclosure of any field on publicly queryable documents that the administrator explicitly restricted from the public API, such as internal notes, draft content, or metadata. Exploitation is trivial, requiring only appending query parameters to a public URL with no authentication. This issue has been fixed in version 4.29.0.
View original CVE JSON
{
"id": "CVE-2026-33888",
"sourceIdentifier": "[email protected]",
"published": "2026-04-15T20:16:35.677",
"lastModified": "2026-10-26T21:10:00.170",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "ApostropheCMS is an open-source Node.js content management system. Versions 4.28.0 and prior contain an authorization bypass vulnerability in the getRestQuery method of the @apostrophecms/piece-type module, where the method checks whether a MongoDB projection has already been set before applying the admin-configured publicApiProjection. An unauthenticated attacker can supply a project query parameter in the REST API request, which is processed by applyBuildersSafely before the permission check, pre-populating the projection state and causing the publicApiProjection to be skipped entirely. This allows disclosure of any field on publicly queryable documents that the administrator explicitly restricted from the public API, such as internal notes, draft content, or metadata. Exploitation is trivial, requiring only appending query parameters to a public URL with no authentication. This issue has been fixed in version 4.29.0."
},
{
"lang": "es",
"value": "ApostropheCMS es un sistema de gestión de contenido Node.js de código abierto. Las versiones 4.28.0 y anteriores contienen una vulnerabilidad de omisión de autorización en el método getRestQuery del módulo @apostrophecms/piece-type, donde el método verifica si una proyección de MongoDB ya ha sido establecida antes de aplicar la publicApiProjection configurada por el administrador. Un atacante no autenticado puede proporcionar un parámetro de consulta project en la solicitud de la API REST, que es procesado por applyBuildersSafely antes de la verificación de permisos, pre-poblando el estado de la proyección y haciendo que la publicApiProjection sea omitida por completo. Esto permite la divulgación de cualquier campo en documentos consultables públicamente que el administrador restringió explícitamente de la API pública, como notas internas, contenido borrador o metadatos. La explotación es trivial, requiriendo solo añadir parámetros de consulta a una URL pública sin autenticación. Este problema ha sido solucionado en la versión 4.29.0."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "apostrophecms",
"product": "apostrophe",
"versions": [
{
"version": "< 4.29.0",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 3.9,
"impactScore": 1.4
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-15T20:03:13.844941Z",
"id": "CVE-2026-33888",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-200"
},
{
"lang": "en",
"value": "CWE-863"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:apostrophecms:apostrophecms:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.29.0",
"matchCriteriaId": "2CFAFBDF-2EB1-404B-B370-8C510FC289AE"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/apostrophecms/apostrophe/commit/00d472804bb622df36a761b6f2cf2b33b2d4ce80",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/apostrophecms/apostrophe/commit/6c2b548dec2e3f7a82e8e16736603f4cd17525aa",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-xhq9-58fw-859p",
"source": "[email protected]",
"tags": [
"Exploit",
"Mitigation",
"Vendor Advisory"
]
}
]
}