
Script de evaluación de riesgo local para CVE-2026-42945 (nginx-rift). Comprueba la versión, la configuración vulnerable de rewrite+set, el estado de ASLR y el endurecimiento de compilación para determinar el riesgo real de RCE frente a DoS.
Herramienta de evaluación de riesgo local para CVE-2026-42945 (Nginx Rift). A diferencia de simplemente decir "la versión afectada es peligrosa", este script verifica capa por capa las tres condiciones que realmente determinan el riesgo, dando una conclusión adaptada a su situación real.
CVE-2026-42945 es una vulnerabilidad de desbordamiento de búfer de montón (CWE-122) que ha existido durante 18 años en el ngx_http_rewrite_module de nginx, con una puntuación CVSS 4.0 de 9.2. Pero el aviso tiene una limitación clave:
"Code execution possible on systems without ASLR protection"
La RCE se logra solo si se cumplen simultáneamente tres condiciones:
rewrite + setSi falta cualquiera de ellos, el peor resultado es que el proceso worker se bloquee y se reinicie automáticamente (DoS), no que el servidor sea comprometido.
Análisis detallado en: 《nginx escondió una bomba durante 18 años, ¿la vulnerabilidad de 9.2 realmente explotó tu servidor?》
# 运行(需要 sudo 读取 nginx 完整配置)
sudo bash check_cve_2026_42945.sh
El script verifica los siguientes cuatro elementos en orden; si alguno no se cumple, sale anticipadamente y da una conclusión:
| Elemento | Descripción |
|---|---|
| Versión de nginx | Rango afectado: 0.6.27 – 1.30.0 |
| Configuración de activación | rewrite con ? y set con grupo de captura en el mismo bloque location |
| Estado de ASLR | Lectura de /proc/sys/kernel/randomize_va_space |
| Hardening de compilación | Detección de -fcf-protection / FORTIFY_SOURCE / Full RELRO / protección de pila |
Caso 1: Versión afectada, pero sin configuración de activación de vulnerabilidad (más común)
[*] Versión de nginx: 1.24.0
[!] La versión 1.24.0 está en el rango afectado, continuando con la verificación de condiciones de activación...
[*] Escaneando configuración de nginx (verificando combinación de configuración vulnerable rewrite+set)...
[✓] No se encontró configuración de activación de vulnerabilidad (combinación rewrite+set)
Conclusión: Versión afectada, pero sin configuración de activación, riesgo real extremadamente bajo
Recomendación: Planifique la actualización a 1.30.1 / 1.31.0, no requiere acción urgente
Caso 2: Configuración vulnerable presente, ASLR activado, hardening de compilación completo
[!] La versión 1.24.0 está en el rango afectado, continuando con la verificación de condiciones de activación...
[!] Configuración de activación de vulnerabilidad encontrada:
→ location ~ ^/api/(.*)$ {
[✓] ASLR activado (nivel 2, aleatorización completa)
→ No se cumplen los requisitos previos para una explotación confiable de RCE, el peor caso es la caída del proceso worker (DoS)
[✓] Detectado -fcf-protection (Protección de flujo de control Intel CET)
[✓] Detectado FORTIFY_SOURCE=3
[✓] Detectado Full RELRO (GOT de solo lectura)
[✓] Detectada protección de pila (stack-protector)
Nivel de riesgo: Bajo
Recomendación: Actualizar a nginx 1.30.1 / 1.31.0 en la próxima ventana de mantenimiento
Caso 3: Configuración vulnerable presente, ASLR desactivado
[!] Configuración de activación de vulnerabilidad encontrada:
→ location ~ ^/api/(.*)$ {
[✗] ASLR desactivado! El riesgo de RCE aumenta significativamente
Nivel de riesgo: Alto (DoS confirmado / RCE posible)
Acción inmediata:
1. Eliminar o modificar temporalmente la configuración rewrite+set que activa la vulnerabilidad
2. Confirmar que ASLR esté activado: echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
3. Actualizar nginx: apt install nginx o compilar e instalar 1.30.1+
| Nivel | Significado | Ritmo de acción sugerido |
|---|---|---|
| Sin impacto | nginx no instalado o versión ya corregida | Sin acción necesaria |
| Extremadamente bajo | Versión afectada pero sin configuración de activación | Actualizar en el próximo mantenimiento rutinario |
| Bajo | Configuración de activación presente, pero ASLR + hardening completo | Actualizar en la próxima ventana de mantenimiento |
| Medio | Configuración de activación presente, hay brechas en la protección | Actualizar lo antes posible, riesgo para la disponibilidad |
| Alto | Configuración de activación + ASLR desactivado + falta de hardening | Actuar inmediatamente |
| Producto | Versiones afectadas | Versiones corregidas |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.30.1 / 1.31.0 |
| NGINX Plus | R32 – R36 | R36 P4 / R35 P2 / R32 P6 |
# Ubuntu / Debian
sudo apt update && sudo apt install nginx
# 验证版本
nginx -v
Aviso oficial: https://my.f5.com/manage/s/article/K000161019
El script ha sido validado en los siguientes escenarios:
Entorno de pruebas: Ubuntu 22.04 LTS, nginx 1.24.0 (paquete oficial de Ubuntu)
include de múltiples niveles pueden tener falsos negativos (el script expande todos los includes mediante nginx -T, cubriendo la gran mayoría de los casos)MIT