Vulnerabilidad crítica en NGINX puede bloquear workers y permitir ejecución remota de código

F5 ha lanzado parches para una vulnerabilidad crítica en NGINX que permite a un atacante remoto no autenticado provocar un desbordamiento de búfer en el heap del proceso worker mediante solicitudes HTTP manipuladas. La falla, identificada como CVE-2026-42533, fue corregida el 15 de julio en NGINX 1.30.4 (estable) y 1.31.3 (mainline), así como en NGINX Plus 37.0.3.1. Se recomienda a todos los usuarios actualizar de inmediato.

Al explotar la vulnerabilidad, es posible bloquear o reiniciar el worker, causando una denegación de servicio. F5 advierte que, si la Aleatorización del Espacio de Direcciones (ASLR) está deshabilitada o puede ser eludida, también podría permitir la ejecución remota de código. El desbordamiento reside en el motor de scripts de NGINX, específicamente en el código que ensambla cadenas a partir de directivas durante el procesamiento de solicitudes.

La vulnerabilidad 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. En ese patrón, la evaluación en dos pasos del motor falla. El primer paso mide cuántos bytes necesita el resultado y asigna un búfer adecuado; el segundo paso escribe los bytes. Ambos leen el mismo estado de captura compartido, y evaluar la expresión regular del mapa entre los dos pasos lo sobrescribe. Esto provoca que el búfer sea demasiado pequeño para la escritura, y tanto la longitud como el contenido del desbordamiento provienen directamente de la solicitud.

No todos los servidores NGINX son vulnerables; la exposición depende de la configuración, no solo de la versión. El aviso de F5 enumera la falla como afectando a NGINX Ingress Controller, Gateway Fabric, App Protect WAF e Instance Manager, junto con el servidor principal y NGINX Plus. Sin embargo, al momento de la publicación, F5 no había listado versiones corregidas para esos cuatro productos.

F5 asigna a la vulnerabilidad una puntuación de 9.2 en CVSS v4 y 8.1 en la escala v3.1 anterior, calificando la complejidad del ataque como 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 el mapa adquirió soporte para expresiones regulares.

CVE-2026-42533 fue reportada a F5 de forma independiente por más de una docena de investigadores. La empresa agradeció a todos por "llamar nuestra atención de forma independiente sobre este problema". El registro de cambios de NGINX atribuye la corrección a Mufeed VH de Winfunc Research y al mantenedor Maxim Dounin.

Uno de los reportantes, Stan Shaw, quien publica como cyberstan, publicó un análisis detallado que va más allá del aviso de F5. Mientras F5 condiciona la ejecución de código a que ASLR esté deshabilitado o sea evitable, Shaw argumenta que la vulnerabilidad proporciona la evasión en sí misma. Le dijo a The Hacker News que la sobrescritura de captura también funciona en sentido inverso: cuando la captura sobrescrita es más pequeña que la original, el búfer sobredimensionado devuelve datos del heap no inicializados, y en una construcción predeterminada de Ubuntu 24.04, una sola solicitud GET no autenticada recupera las direcciones que necesita un payload.

"Un lector del aviso de F5 podría concluir razonablemente que esto solo causa denegación de servicio en sistemas predeterminados. No es así", dijo Shaw. Es una afirmación más fuerte que la que hace F5, una que según él alcanzó 10 de 10 en sus propias pruebas, y por ahora está reteniendo los detalles de explotación y una prueba de concepto, por lo que nadie puede verificarlo de forma independiente aún.

La solución es actualizar a NGINX 1.30.4 o 1.31.3, o a NGINX Plus 37.0.3.1. Para quienes no puedan parchear de inmediato, la mitigación temporal de F5 es cambiar los mapas de expresiones regulares afectados a capturas con nombre, lo que según Shaw cierra la ruta principal y cubre la mayoría de las configuraciones.

Sin embargo, Shaw le dijo a The Hacker News que la mitigació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, que confirmó con AddressSanitizer y que el aviso de F5 no menciona. "Actualizar a 1.30.4 / 1.31.3 es la única solución completa", afirmó.

La exposición que se debe buscar es limitada: un mapa basado en expresiones regulares cuya variable aparece en una expresión de cadena junto con una captura numerada ($1, $2) de una expresión regular anterior, con la captura escrita antes de la variable del mapa. El propio escáner de Shaw automatiza esa verificación en toda la configuración, sigue las inclusiones y marca solo el orden explotable; no explota nada, pero como herramienta del investigador no es un producto comercial.

Esta es la tercera vulnerabilidad de desbordamiento de heap en el código de evaluación de expresiones de NGINX divulgada 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 son del mismo tipo: el motor de scripts de dos pasos de NGINX mide un búfer en un paso y escribe en él en el siguiente, y cada vez la escritura supera el tamaño medido. El desencadenante difiere, pero la debilidad compartida, como señala el investigador, es un diseño de dos pasos que confía en su propia medición.

Hasta el 20 de julio, CVE-2026-42533 no estaba en el catálogo de Vulnerabilidades Explotadas Conocidas de CISA y no había aparecido ningún código de explotación público. Shaw dice que publicará su propia prueba de concepto 21 días después del parche, y Rift es un caso de advertencia: su explotación se hizo pública en días y atrajo explotación activa poco después. Esa es la razón para actualizar antes de que llegue la de esta vulnerabilidad.

The Hacker News preguntó a F5 si cambiar a capturas con nombre cierra por completo CVE-2026-42533, dada la variante que documenta Shaw, y cuándo estarán disponibles las versiones corregidas para los productos derivados afectados. F5 no había respondido al momento de la publicación.

Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *