Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Angular ssr (CVE-2025-59052)

Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-362 Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
10/09/2025
Última modificación:
11/09/2025

Descripción

Angular es una plataforma de desarrollo para construir aplicaciones web móviles y de escritorio usando TypeScript/JavaScript y otros lenguajes. Angular usa un contenedor DI (el "inyector de plataforma") para mantener el estado específico de la solicitud durante la renderización del lado del servidor. Por razones históricas, el contenedor se almacenaba como una variable global con alcance de módulo de JavaScript. Cuando se procesan múltiples solicitudes concurrentemente, estas podrían compartir o sobrescribir inadvertidamente el estado global del inyector. En términos prácticos, esto puede llevar a que una solicitud responda con datos destinados a una solicitud completamente diferente, filtrando datos o tokens incluidos en la página renderizada o en los encabezados de respuesta. Mientras un atacante tuviera acceso a la red para enviar cualquier tráfico que recibiera una respuesta renderizada, podría haber sido capaz de enviar un gran número de solicitudes y luego inspeccionar las respuestas en busca de fugas de información. Las APIs `bootstrapApplication`, `getPlatform` y `destroyPlatform` eran vulnerables y requerían cambios disruptivos solo para SSR.<br /> El problema ha sido parcheado en todas las líneas de lanzamiento activas, así como en la versión preliminar v21. Los paquetes parcheados incluyen `@angular/platform-server` 21.0.0-next.3, 20.3.0, 19.2.15 y 18.2.14 y `@angular/ssr` 21.0.0-next.3, 20.3.0, 19.2.16 y 18.2.21. Varias soluciones alternativas están disponibles. Deshabilite SSR a través de Rutas del Servidor u opciones del constructor, elimine cualquier comportamiento asíncrono de las funciones `bootstrap` personalizadas, elimine los usos de `getPlatform()` en el código de la aplicación, y/o asegúrese de que la compilación del servidor defina `ngJitMode` como falso.