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
No comments:
Post a Comment
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!