
Auditoría de riesgo de regex del mapa NGINX defensivo CVE-2026-42533 con escáner de configuración, notas de Splunk/Defender y evidencia de laboratorio.
Nota de investigación defensiva sobre CVE-2026-42533, un desbordamiento de búfer en el montón en el procesamiento de solicitudes de NGINX relacionado con directivas map con capturas de regex y ciertos patrones de evaluación de variables.
En lenguaje sencillo: NGINX es un software de servidor web y proxy inverso. Suele ubicarse frente a sitios web y APIs, acepta solicitudes web y decide a dónde enviarlas. Una regla map es una función de configuración de NGINX que dice "si este valor de solicitud se parece a X, establece esta variable en Y". Las capturas de regex son los fragmentos de texto extraídos de una coincidencia de patrón.
Este CVE es importante porque algunas versiones antiguas de NGINX pueden manejar incorrectamente un tipo específico de patrón de map y combinación de variables. Eso no significa que todos los servidores NGINX estén expuestos. La versión importa, pero la configuración activa también.
Este proyecto es intencionalmente seguro: no incluye tráfico de exploits, payloads de caída ni sondeos de producción. El objetivo es mostrar cómo haría el triaje de exposición, explicar el riesgo y entregar a los defensores una ruta de validación repetible.

NGINX lista el problema como un aviso de seguridad importante: las versiones vulnerables son 0.9.6-1.31.2, las versiones corregidas son 1.30.4+ y 1.31.3+. El changelog de NGINX describe un desbordamiento de búfer en el montón en un proceso worker cuando una directiva map usa coincidencia de regex y la variable map se incluye en una expresión de cadena después de una captura afectada por ese map.
NVD registra la descripción de F5: un atacante no autenticado puede desencadenar el problema con solicitudes HTTP manipuladas, pero solo cuando las condiciones de configuración y tiempo de ejecución se alinean. El impacto directo esperado es el reinicio del worker de NGINX y la denegación de servicio, con posible ejecución de código si ASLR está deshabilitado o se evita.
Los defensores deben responder cuatro preguntas antes de tratar una implementación de NGINX como expuesta. En pocas palabras: primero confirma la versión, luego confirma si el patrón de configuración riesgoso está realmente presente.
map con entradas de regex?no buffer space in script copy?Si esas palabras son nuevas: un worker es el proceso de NGINX que maneja las solicitudes. Un bucle de caída o señal de reinicio significa que el proceso puede estar fallando y comenzando de nuevo. Un backport de distribución significa que los proveedores de Linux a veces parchean una versión de apariencia antigua sin cambiar el número de versión a la versión upstream más reciente.
flowchart LR
advisory["Read advisory and changelog"] --> version["Check NGINX version"]
version --> config["Review active config"]
config --> scanner["Run safe map-pattern scanner"]
scanner --> validate["Validate fixed build or vendor patch"]
validate --> hunt["Hunt restart and diagnostic signals"]
hunt --> remediate["Patch, reload, and document"]
scripts/audit_nginx_map_risk.py
Un escáner heurístico defensivo para archivos de configuración de NGINX. Busca bloques map con regex, capturas y expresiones de cadena posteriores que referencien capturas y salidas del map. No demuestra que un servidor sea explotable. Encuentra configuraciones que merecen una revisión humana.
scripts/render_demo_gif.py
Reconstruye el pequeño GIF de demostración del README a partir de la salida real del escáner.
detections/splunk_nginx_cve_2026_42533.spl
Búsquedas de Splunk para inventario de versiones, síntomas de caída/reinicio y cadenas de diagnóstico posteriores al parche.
detections/defender_hunting_notes.kql
Notas de búsqueda de Microsoft Defender para hosts Linux donde se recopilan registros de NGINX y actividad de procesos.
detections/sigma_nginx_worker_restart_symptoms.yml
Regla de búsqueda Sigma para síntomas de reinicio o caída del worker de NGINX. Es una pista para revisión, no una prueba de explotación.
samples/nginx_map_patterns.conf
Ejemplos de configuración esquemáticos y seguros para explicar el patrón de riesgo. No son payloads de explotación.
SECURITY.md
Nota de alcance para el repositorio. Esto mantiene el proyecto claramente defensivo y seguro de revisar.
La validación local actual se almacena en evidence/. El quickstart de Windows ejecuta el escáner contra la configuración de muestra incluida y guarda la transcripción. La validación de NGINX para Windows descarga la compilación oficial corregida de NGINX, confirma la configuración de laboratorio con nginx -t y ejecuta el escáner. La validación en VM Kali ejecuta el mismo escáner dentro de una invitada Kali VMware desechable. Esto demuestra que el repositorio es ejecutable y revisable en Windows y Linux, manteniendo el proyecto dentro de un límite defensivo.
powershell -ExecutionPolicy Bypass -File .\lab\windows-quickstart.ps1
powershell -ExecutionPolicy Bypass -File .\lab\windows-nginx-validation.ps1
python .\scripts\self_check.py
map con regex.1.30.4+ o 1.31.3+, o a la versión corregida correspondiente de NGINX Plus.no buffer space in script copy después de parchear.lab/windows-quickstart.ps1
Ejecutor de evidencias compatible con Windows que ejecuta el escáner y guarda la salida en evidence/.
lab/windows-nginx-validation.ps1
Descarga la compilación oficial corregida de NGINX para Windows, valida una configuración de laboratorio local con nginx -t, ejecuta el escáner y guarda las evidencias.
lab/vmware-lab-notes.md
Ruta de laboratorio opcional más completa para una VM Linux desechable si más adelante se necesita un recorrido basado en capturas de pantalla.