Media

ApostropheCMS: El token de sesión entre dominios en la URL permite la toma de control de la sesión

  • Publicada: 20.10.2026
  • Actualizado: 20.10.2026 21:21

Resumen

La migración de sesión entre dominios de Apostrophe emite un token de sesión de un solo uso como parámetro de consulta de URL y lo guarda en la caché de Mongo. Cualquier cliente que presente el token adopta de forma silenciosa la sesión completa del usuario objetivo (incluido passport.user) sin necesidad de credenciales.

Detalles

packages/apostrophe/modules/@apostrophecms/i18n/index.js:

  • La generación de tokens en flujos entre hosts/locales (L479–487) y la redirección de passport-bridge entre locales (passport-bridge/index.js L557–593) coloca el token en la URL.
  • acceptCrossDomainSessionToken (L258–298) lee ?aposCrossDomainSessionToken, aplica con Object.assign la sesión almacenada (cookie + passport.user) sobre req.session, y luego anula la entrada en caché bajo el espacio de nombres @apostrophecms/i18n:cross-domain-sessions.
  • El middleware sin before: se registra para cada URL (express findModuleMiddlewareAndRoutes L820–879); verificado con APOS_LOG_ALL_ROUTES=1.

PoC

bash
# 0) Anonymous baseline: admin-only draft → 403
# 1) Admin logs in legitimately (token minted into redirect URL):
curl -c admin.cookies -X POST -H "Content-Type: application/json" \
     --data '{"username":"admin","password":"adminpassword","session":true}' \
     http://localhost:3100/api/v1/@apostrophecms/login/login
# 2) Attacker with NO credentials visits the leaked token URL:
curl -c atk.cookies "http://localhost:3100/?aposCrossDomainSessionToken=HUNTING_TOKEN"
#    → 302 Location: / ; attacker now holds a vulnlab.sid SID cookie
# 3) Attacker reads admin-only content via adopted session:
curl -b atk.cookies ".../api/v1/@apostrophecms/page/d576242ve1dkzb12jiiabujd:en:draft"
#    → 200  adopted-session read -> Secret Private Page | secretData = TOP-SECRET-VALUE-abc123
# 4) Cache entry consumed (single-use): {"value":null}

Impacto

Secuestro de sesión / apropiación de la cuenta del usuario migrado para cualquiera que obtenga el token, heredando todos los privilegios de dicha cuenta. La exposición es realista precisamente porque el token se encuentra en las URL: registros de acceso de servidores, proxies y navegadores, historial de navegación y en la cabecera Referer cuando el host de destino difiere del origen (el caso de uso previsto). El uso único acota la ventana temporal, pero no la elimina.

Qué hacer

Actualice apostrophe a la versión 4.33.0 o superior y @apostrophecms/passport-bridge a la versión 1.6.1 o superior. Como medida de mitigación, entregue el token mediante una cookie SameSite firmada, HttpOnly y de corta duración en lugar de un parámetro de consulta; vincule su uso al par exacto de host origen/destino, hágalo expirar en segundos y no lo registre en logs.

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
Paquete de npm @apostrophecms/passport-bridge < 1.6.1 1.6.1

Referencias

Puntuación CVSS -
Vector CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Debilidad (CWE)
CWE-598
Plataforma
npm
Paquete
apostrophe, @apostrophecms/passport-bridge
Publicada
20.10.2026
Actualizado
20.10.2026 21:21

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

OSV / GitHub Advisory Database - GHSA-hhvr-8m24-qqr3 - 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: El token de sesión entre dominios en la URL permite la toma de control de la sesión esta entrada
    Media CVE-2026-113669 < 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.