Media

ApostropheCMS: GET /api/v1/@apostrophecms/page/:id elude la restricción viewRole y expone campos protegidos por viewPermission a usuarios con menos privilegios

  • Publicada: 21.10.2026
  • Actualizado: 22.10.2026 10:00

Resumen

El endpoint REST getOne para páginas no aplica las restricciones a nivel de tipo de viewRole ni la supresión a nivel de campo de viewPermission. Un usuario con rol de editor que conozca un _id de documento puede leer todo el contenido de páginas exclusivas para administradores y sus campos privilegiados, mientras que el endpoint getAll aplica correctamente ambas restricciones.

Detalles

Hallazgo 3 — elusión de viewRole: modules/@apostrophecms/page/index.js expone getRestQuery(req, omitPermissionCheck = false). The getAll path calls publicApiCheckAsync y procesa todo el flujo del constructor de consultas, incluido el filtrado de viewRole. La ruta getOne utiliza una ruta de código divergente que omite este flujo.

Un tipo de página declarado con viewRole: 'admin' es inaccesible a través de GET /api/v1/@apostrophecms/page?type=secretPage (devuelve 403 a un editor), pero es devuelto en su totalidad por GET /api/v1/@apostrophecms/page/:id:en:published al mismo editor.

Hallazgo 4 — fuga de campos bajo viewPermission: Los campos decorados con viewPermission: { action: 'edit', type: '@apostrophecms/page' } son eliminados por removeForbiddenFields en la ruta getAll, pero se devuelven textualmente en getOne. Un editor que conozca cualquier _id de documento puede leer todos los campos restringidos por viewPermission.

PoC

bash
# Log in as editor, get session jar
EDITOR_JAR="..."

# getAll — correctly blocked
curl -b "$EDITOR_JAR" \
  "http://TARGET/api/v1/@apostrophecms/page?type=secretPage"
# → 403 Forbidden

# getOne — bypassed, returns full document including viewPermission fields
curl -b "$EDITOR_JAR" \
  "http://TARGET/api/v1/@apostrophecms/page/ADMIN_PAGE_ID:en:published"
# → 200 OK, full doc including secretField value

Impacto

Los editores pueden leer todo el contenido de cualquier página, incluidas aquellas restringidas a administradores mediante viewRole, siempre que conozcan o puedan adivinar el _id. Los valores de campos sensibles protegidos por viewPermission también quedan totalmente expuestos. Esto anula el modelo de control de acceso al contenido en cualquier sitio que utilice estos decoradores.

Qué hacer

Actualice el paquete apostrophe a la versión 4.34.0 o posterior.

Software afectado

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

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm apostrophe < 4.34.0 4.34.0

Referencias

Puntuación CVSS 4.3/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Debilidad (CWE)
CWE-862
Plataforma
npm
Paquete
apostrophe
Publicada
21.10.2026
Actualizado
22.10.2026 10:00

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

OSV / GitHub Advisory Database - GHSA-vh56-5m88-39rq - 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 (33) en el archivo
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

  1. 2020: 2
  2. 2021: 2
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 29
Gravedad:
  1. ApostropheCMS: GET /api/v1/@apostrophecms/page/:id elude la restricción viewRole y expone campos protegidos por viewPermission a usuarios con menos privilegios esta entrada
    Media · 4.3 CVE-2026-112957 < 4.34.0 4.34.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.