ApostropheCMS: Divulgación de la existencia de contenido privado y administrativo a través del endpoint doc/slugTaken
Resumen
El endpoint slugTaken devuelve un booleano que indica si un slug está en uso en todos los tipos de documentos y niveles de visibilidad, sin ningún filtro de permisos ni de tipo. Cualquier usuario autenticado (incluidos los editores) puede enumerar el espacio de slugs de páginas privadas, borradores y contenido archivado.
Detalles
POST /api/v1/@apostrophecms/doc/slugTaken con el cuerpo { "slug": "target-slug" } ejecuta una comprobación directa de existencia en la colección de documentos. No realiza lo siguiente:
- Comprobar si el usuario solicitante tiene permisos de lectura para documentos de ese tipo.
- Filtrar por
visibility(public, loginRequired, private). - Filtrar por
viewRole. - Filtrar por estado de publicación (borrador frente a publicado).
Una sola sesión autenticada puede iterar por el espacio de slugs para enumerar el inventario completo de contenidos del CMS, incluido el contenido que el usuario tiene explícitamente prohibido ver.
PoC
# Any authenticated session works — editor role sufficient
curl -b "$EDITOR_JAR" -X POST \
-H "Content-Type: application/json" \
-d '{"slug":"known-private-page-slug"}' \
"http://TARGET/api/v1/@apostrophecms/doc/slugTaken"
# → { "taken": true } — confirms private page exists
curl -b "$EDITOR_JAR" -X POST \
-H "Content-Type: application/json" \
-d '{"slug":"zzz-nonexistent"}' \
"http://TARGET/api/v1/@apostrophecms/doc/slugTaken"
# → { "taken": false }
Impacto
Divulgación de información. Un atacante con cualquier sesión autenticada puede enumerar todos los slugs del sistema, trazando la estructura de contenido completa del CMS, incluido el contenido privado y exclusivo para administradores.
Qué hacer
Actualice ApostropheCMS a la versión 4.34.0 o superior.
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Paquete de npm | apostrophe | < 4.34.0 | 4.34.0 |
Referencias
- https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-f66c-mpj2-3r8h
- https://nvd.nist.gov/vuln/detail/CVE-2026-112952
- https://github.com/apostrophecms/apostrophe/commit/06e4b377f3c360f9e89c32dccd7e505ad5ddf498
- https://github.com/apostrophecms/apostrophe/commit/40b989b1a9dd23d30029b8ce7668634265cfe5ea
- https://github.com/apostrophecms/apostrophe
- https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.34.0
- Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N- Debilidad (CWE)
CWE-200- Plataforma
- npm
- Paquete
apostrophe- Publicada
- 21.10.2026
- Actualizado
- 21.10.2026 20:23
Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.
OSV / GitHub Advisory Database - GHSA-f66c-mpj2-3r8h - CC BY 4.0
Historial de vulnerabilidades: apostrophe
Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 33
- Primera → última
- 09.2020 10.2026
- Sin corrección
- 4
- Explotada en ataques
- 0
Distribución por gravedad
- Crítica 2
- Alta 9
- Media 18
- Baja 4
Divulgaciones por año
- 2020: 2
- 2021: 2
- 2022: 0
- 2023: 0
- 2024: 0
- 2025: 0
- 2026: 29
-
ApostropheCMS: Divulgación de la existencia de contenido privado y administrativo a través del endpoint doc/slugTaken esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.