F5 ha publicado correcciones para una vulnerabilidad crítica en 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 fue corregida el 15 de julio en NGINX 1.30.4 (estable) y 1.31.3 (principal), así como en NGINX Plus 37.0.3.1, por lo que se recomienda actualizar a estas versiones.
La activación de esta vulnerabilidad puede provocar el bloqueo o reinicio del proceso de trabajo, causando una denegación de servicio. F5 advierte que si ASLR está deshabilitado o puede ser eludido, también podría permitir la ejecución remota de código.
El desbordamiento se encuentra 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.
Esta vulnerabilidad no afecta a todos los servidores nginx, ya que depende de la configuración específica y no solo de la versión. F5 indica que 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 lanzado versiones corregidas para estos cuatro productos.
F5 le asigna una puntuación de 9.2 en CVSS v4 y de 8.1 en la escala anterior v3.1, con una complejidad de ataque considerada 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 esta vulnerabilidad. 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 de F5. Mientras que F5 condiciona la ejecución del código a que ASLR esté deshabilitado o sea eludible, Shaw argumenta que la vulnerabilidad proporciona la propia elusión. Según su análisis, la manipulación de la captura permite que, cuando esta es más pequeña que la original, el búfer sobredimensionado devuelva datos de montón no inicializados, y en una compilación predeterminada de Ubuntu 24.04, una sola solicitud GET no autenticada puede recuperar las direcciones necesarias para una carga útil.
Shaw afirmó que un lector del aviso de F5 podría concluir que se trata de un ataque de denegación de servicio exclusivo de sistemas predeterminados, pero que su hallazgo sugiere lo contrario. Por el momento, no proporciona detalles sobre la explotación ni una prueba de concepto.
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, F5 sugiere cambiar los mapas de expresiones regulares afectados por capturas con nombre como solución temporal.
Sin embargo, Shaw señala que esta solución deja abierta una ruta más estrecha cuando un mapa define el mismo grupo con nombre que la expresión regular de ubicación. Según él, la única solución completa es actualizar a la versión 1.30.4 o 1.31.3.
Shaw ha publicado un escáner de configuración que revisa si existen patrones vulnerables, sigue las inclusiones y marca el orden vulnerable, aunque no explota nada.
Esta es la tercera vulnerabilidad de desbordamiento de búfer en el código de evaluación de expresiones de nginx revelada 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, excediendo el tamaño medido. El desencadenante difiere en cada caso, pero la debilidad común es el diseño de dos pasadas que confía en su propia medición.
Al 20 de julio, no ha aparecido código de explotación público. Shaw afirma que publicará su propia prueba de concepto 21 días después del parche. Rift sirve como advertencia, ya que su exploit se hizo público en cuestión de días y fue objeto de explotación activa, por lo que es importante actualizar antes de que esta vulnerabilidad sea explotada.
Con Información de blog.segu-info.com.ar
