Vulnerabilidad crítica de NGINX ~ Segu-Info

F5 ha publicado correcciones para una vulnerabilidad crítica de NGINX que
permite a un atacante remoto no autenticado provocar un desbordamiento
de búfer en el montón del proceso de trabajo mediante solicitudes HTTP
manipuladas. La vulnerabilidad
CVE-2026-42533
se corrigió el 15 de julio en
NGINX 1.30.4 (estable) y 1.31.3 (principal), y en NGINX Plus 37.0.3.1; se recomienda actualizar a las versiones
anteriores.

Activar esta vulnerabilidad puede provocar el bloqueo o el reinicio del
proceso de trabajo, causando una denegación de servicio.

F5 advierte que, si ASLR está deshabilitado o se puede eludir, también podría
permitir la ejecución remota de código.

El desbordamiento reside en el motor de scripts de nginx, el código que
ensambla cadenas a partir de directivas en el momento de la solicitud. Solo se
manifiesta bajo una configuración específica: un mapa basado en expresiones
regulares cuya variable de salida se referencia en una expresión de cadena
después de una captura de una coincidencia de expresión regular anterior.

Esto no afecta a todos los servidores nginx; la vulnerabilidad depende de la
configuración, no solo de la versión.
El
aviso de F5
indica que la vulnerabilidad afecta a NGINX Ingress Controller, Gateway
Fabric, App Protect WAF e Instance Manager, además del servidor principal y
NGINX Plus.

Sin embargo, al momento de la publicación, F5 no había publicado versiones
corregidas para estos cuatro productos.

F5 le otorga una puntuación de 9.2 en CVSS v4 y de 8.1 en la escala anterior
v3.1, y la complejidad del ataque es alta. Todas las versiones de
nginx desde la 0.9.6 hasta la 1.31.2 son vulnerables, un rango que se remonta a 2011, cuando la función map incorporó soporte
para expresiones regulares.

Más de una docena de investigadores informaron a F5 de forma independiente
sobre la vulnerabilidad CVE-2026-42533; el proveedor les agradeció por
«haber llamado nuestra atención sobre este problema de forma
independiente»
. El registro de cambios de nginx atribuye la corrección a Mufeed VH de
Winfunc Research y al mantenedor Maxim Dounin.

Uno de los reporteros, Stan Shaw, que publica bajo el seudónimo de cyberstan,
publicó un informe
detallado que va más allá del aviso. F5 condiciona la ejecución del código a
que ASLR esté deshabilitado o sea eludible, y el argumento de Shaw es que la
vulnerabilidad proporciona la propia elusión. La manipulación de la captura
también funciona a la inversa: cuando la captura manipulada es más pequeña que
la original, el búfer sobredimensionado devuelve datos de montón no
inicializados, y en una compilación predeterminada de Ubuntu 24.04, una sola
solicitud GET no autenticada recupera las direcciones que necesita una carga
útil.

«Un lector del aviso de F5 podría concluir razonablemente que se trata de
un ataque DoS exclusivo de sistemas predeterminados. Pero no es así»
, afirmó Shaw. Su afirmación es más contundente que la de F5, y según él,
obtuvo una puntuación perfecta en sus propias pruebas. Por el momento, no
proporciona detalles sobre la explotación ni una prueba de concepto, para que
nadie pueda verificarla de forma independiente.

La solución consiste en actualizar a nginx 1.30.4 o 1.31.3, o a NGINX Plus
37.0.3.1.

Para quienes no puedan aplicar el parche de inmediato, la solución temporal de
F5 consiste en cambiar los mapas de expresiones regulares afectados por
capturas con nombre, lo que, según Shaw, cierra la ruta principal y cubre la
mayoría de las configuraciones.

Sin embargo, esta solución deja abierta una ruta más estrecha: un mapa que
define el mismo grupo con nombre que la expresión regular de ubicación alcanza
el mismo desbordamiento a través de una segunda ruta de código, algo que
confirmó con AddressSanitizer y que el aviso de F5 no menciona.
«Actualizar a la versión 1.30.4 / 1.31.3 es la única solución completa», afirmó.

Las automatizaciones del
escáner de Shaw
revisan la configuración, siguen las inclusiones y marcan solo el orden
vulnerable; no explotan nada, pero como herramienta del reportero, no es un
producto del proveedor.

Este es el tercer desbordamiento de búfer en el código de evaluación de
expresiones de nginx que se revela en aproximadamente dos meses, después de
Rift (CVE-2026-42945) en mayo y un error de capturas superpuestas en el módulo de reescritura (CVE-2026-9256) días después.

Las tres vulnerabilidades pertenecen al mismo tipo: el motor de
scripts de dos pasadas de nginx dimensiona un búfer en una pasada y
escribe en él en la siguiente, y en cada ocasión la escritura excede el tamaño
medido. El desencadenante difiere: una bandera obsoleta en Rift, capturas
superpuestas en el error de reescritura, estado de captura modificado en este
caso. La debilidad común, como señala el investigador, es un diseño de dos
pasadas que confía en su propia medición.

Al 20 de julio, la vulnerabilidad aún no ha aparecido ningún código de
explotación público. Shaw afirma que publicará su propia prueba de concepto 21
días después del parche, y Rift sirve de advertencia: su exploit se
hizo público en cuestión de días y pronto fue objeto de explotación activa.
Por eso es importante actualizar antes de que llegue esta vulnerabilidad.

Fuente:
THN


Ver fuente

Related Post