Media

ApostropheCMS: la ruta REST :_id/locales omite la barrera de autorización de la API pública que aplican sus rutas de lectura hermanas (divulgación de existencia de documento y metadatos de configuración regional)

  • Publicada: 20.10.2026
  • Actualizado: 20.10.2026 21:26

Resumen

La ruta REST GET /api/v1/<piece-type>/:_id/locales (y la ruta de página equivalente) no aplica la barrera publicApiCheckAsync que imponen las demás rutas de lectura de ApostropheCMS. Un atacante no autenticado puede consultar esta ruta para cualquier documento _id y descubrir si el documento existe y en qué configuraciones regionales está publicado, lo que constituye una divulgación de existencia de documentos y metadatos de configuración regional que la API de lectura debería restringir.

Componentes afectados

  • Repositorio: apostrophecms/apostrophe (paquete monorepo apostrophe).
  • Confirmado en 4.32.2 (commit d3ff8c9 == el publicado 4.32.2; sin cambios en el HEAD actual al momento del reporte). Sin corrección al momento del reporte.
  • Pila tecnológica: Node.js / Express + MongoDB.
  • Endpoints: GET /api/v1/<piece-type>/:_id/locales y GET /api/v1/@apostrophecms/page/:_id/locales.

Detalle técnico

  • No seguro: modules/@apostrophecms/piece-type/index.js:397 registra la ruta :_id/locales sin publicApiCheckAsync. El módulo de página presenta la misma omisión en modules/@apostrophecms/page/index.js:925.
  • Rutas hermanas protegidas: las rutas de lectura en el mismo módulo (por ejemplo, getAll en piece-type/index.js:256-263) llaman a publicApiCheckAsync (:263) para aplicar la directiva de acceso a la API pública.
  • De este modo, el manejador locales (que invoca getLocales() para el documento) se ejecuta para cualquier cliente, independientemente del control de API pública que aplican las demás rutas de lectura, devolviendo los metadatos de configuración regional y publicación del documento sin autorización.

Impacto

Un cliente no autenticado puede confirmar la existencia de un documento mediante _id y enumerar sus configuraciones regionales y estado de publicación, información que la API de lectura está diseñada para restringir. Se evalúa razonablemente como 4.3 (AC:H) dada la precondición del identificador opaco _id (el cliente necesita conocer el ID del documento).

Verificación (solo local)

Reproducido localmente contra apostrophe@4.32.2 (== commit d3ff8c9) con contenido sintético:

  • La revisión del código fuente confirmó que la ruta :_id/locales carece de publicApiCheckAsync, mientras que las rutas de lectura hermanas sí lo tienen.
  • Una solicitud no autenticada a GET /api/v1/<piece-type>/<_id>/locales devolvió los metadatos de configuración regional del documento (existencia + locales), mientras que las rutas protegidas (por ejemplo, getAll) exigieron correctamente la política de API pública.
  • Control: la misma ruta con la comprobación publicApiCheckAsync añadida (igualando a las rutas hermanas) deniega la petición no autenticada, aislando la falta del control como la causa. Solo se empleó contenido sintético; no se interactuó con ningún entorno alojado.

Créditos

Crédito a Santosh Kumar Puppala (https://github.com/Santoshkumarpuppala).).

Qué hacer

Agregue la barrera de autorización publicApiCheckAsync (o equivalente) a la ruta :_id/locales tanto en el módulo piece-type como en el módulo page, coincidiendo con las rutas de lectura hermanas, de modo que los metadatos de existencia y configuración regional solo se devuelvan a los clientes autorizados por la directiva de la API pública.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm apostrophe < 4.33.0 4.33.0

Referencias

Puntuación CVSS 5.3/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Debilidad (CWE)
CWE-200, CWE-862
Plataforma
npm
Paquete
apostrophe
Publicada
20.10.2026
Actualizado
20.10.2026 21:26

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-gqh3-7856-rjjg - 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.

Todas (27) en el archivo
Entradas en total
27
Primera → última
09.2020 10.2026
Sin corrección
4
Explotada en ataques
0

Distribución por gravedad

  • Crítica 2
  • Alta 8
  • Media 13
  • Baja 4

Divulgaciones por año

  1. 2020: 2
  2. 2021: 2
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 23
Gravedad:
  1. ApostropheCMS: la ruta REST :_id/locales omite la barrera de autorización de la API pública que aplican sus rutas de lectura hermanas (divulgación de existencia de documento y metadatos de configuración regional) esta entrada
    Media · 5.3 CVE-2026-113668 < 4.33.0 4.33.0
  2. Alta · 7.3 CVE-2026-45011 = 4.29.0 sin corrección
  3. Crítica · 9.8 CVE-2021-25979 >= 2.63.0, < 3.4.0 3.4.0

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.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.