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
CVE-2026-42945-nginx-rift-poc — PoC para CVE-2026-42945 (nginx Rift) — desbordamiento de búfer en el heap en ngx_http_rewrite_module. Incluye modos detect/probe/exploit, laboratorio Docker con doble fixture, descubrimiento empírico de direcciones, barrido de offsets verificado mediante OOB. Divulgación original por depthfirst. | Kitploit
Herramientas/GitHubGitHub/f2u0a0d3/cve-2026-42945-nginx-rift-poc
Análisis Dinámico (Sandboxing)Frameworks de ExploitsAnálisis de VulnerabilidadesExplotación de Aplicaciones WebFuzzingPruebas de PenetraciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubf2u0a0d3/cve-2026-42945-nginx-rift-poc

CVE-2026-42945-nginx-rift-poc

Ver Repositorio
15hace 3 mesesAún no revisado

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

PoC para CVE-2026-42945 (nginx Rift) — desbordamiento de búfer en el heap en ngx_http_rewrite_module. Incluye modos detect/probe/exploit, laboratorio Docker con doble fixture, descubrimiento empírico de direcciones, barrido de offsets verificado mediante OOB. Divulgación original por depthfirst.

Compartir

NGINX Rift — CVE-2026-42945

Prueba de concepto de RCE para CVE-2026-42945, un desbordamiento crítico de búfer en el montón (heap) en el ngx_http_rewrite_module de NGINX introducido en 2008. Permite la ejecución remota de código no autenticada contra servidores que usan combinaciones de captura rewrite ... ?... + set.

Divulgación original de la vulnerabilidad: depthfirst — encontrada junto con CVE-2026-42946, CVE-2026-40701, CVE-2026-42934 mediante su sistema autónomo de auditoría de código fuente.

Estructura

root@kitploit:~
poc-CVE-2026-42945/
├── exploit.py            — improved PoC (3 modes: --check / --probe / --exploit)
├── poc.py.orig           — original depthfirst PoC (reference)
├── env/                  — dual-fixture Docker lab
│   ├── Dockerfile          (vuln: nginx commit 98fc3bb78)
│   ├── Dockerfile.patched  (patched: release-1.31.0)
│   ├── docker-compose.yml  (both services)
│   ├── nginx.conf          (vulnerable rewrite + set config)
│   ├── entrypoint.sh       (runs under setarch -R — ASLR off)
│   └── server.py           (backend stub)
├── discover-addresses.sh — extract HEAP_BASE / LIBC_BASE / system() offset from running container
├── verify.sh             — dual-fixture reproducer (exploit vuln, prove patched blocks)
├── setup.sh              — build helper (legacy single-image)
├── references.md         — full bug mechanics, exploitation strategy, mitigations
└── README.md             — this file

El bug (TL;DR)

Motor de scripts de dos pasadas, desincronización de la bandera is_args:

  • Pasada de longitud ve is_args = 0 → asigna la longitud bruta de captura
  • Pasada de copia ve is_args = 1 → expansión 3x de ngx_escape_uri(NGX_ESCAPE_ARGS) → desbordamiento del montón (heap)

Explotación: heap feng shui mediante el cuerpo POST /spray (se permiten bytes NUL en el cuerpo, se planta un ngx_pool_cleanup_s falso) + desbordamiento de URI que corrompe la cabecera ngx_pool_t.cleanup adyacente. La destrucción del pool → system(cmd).

Mecánica completa + estrategia de explotación en references.md.

Versiones afectadas y corregidas

ProductoAfectadasCorregidas
NGINX Open Source0.6.27 – 1.30.01.30.1, 1.31.0
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6

Aviso del proveedor: https://my.f5.com/manage/s/article/K000160932

Inicio rápido

root@kitploit:~
# Build both fixtures
docker compose -f env/docker-compose.yml build

# Start lab (vuln=:19321, patched=:19421)
docker compose -f env/docker-compose.yml up -d

# Detect-only (no overflow trigger)
python3 exploit.py --check --host 127.0.0.1 --port 19321

# Full exploit
python3 exploit.py --exploit --host 127.0.0.1 --port 19321 \
    --cmd 'echo pwned > /tmp/rift'

docker exec nginx-rift-vuln cat /tmp/rift

# Dual-fixture verify (exploit vuln + confirm patched blocks)
./verify.sh

# Teardown
docker compose -f env/docker-compose.yml down

Modos

ModoCaso de usoEfecto secundario
--checkDetectar la presencia de la superficie de rewriteNinguno — solo envía URIs de sonda pequeñas
--probeEnumerar los offsets de aterrizaje del spray para ESTA compilaciónBloquea (crash) los worker(s) durante la búsqueda; sin exec
--exploitCadena RCE completaCrash del worker + llamada a system() con --cmd

Los objetivos que no sean localhost requieren la bandera --i-have-tested-this (reconocimiento de que los offsets hardcodeados coinciden con la compilación desplegada).

Descubrimiento de direcciones

Los valores por defecto de --heap-base / --libc-base / --system-offset son los del laboratorio incluido (Ubuntu 22.04 / glibc 2.35 / nginx commit 98fc3bb78 / ASLR desactivado). Para una compilación nueva o una libc diferente:

root@kitploit:~
docker compose -f env/docker-compose.yml up -d nginx-vuln
./discover-addresses.sh
# Copy values into exploit.py invocation

Advertencias

  • Solo laboratorio. Los offsets hardcodeados son estables únicamente dentro del fixture incluido. La explotación en producción requiere la derivación de offsets por objetivo (fuga de información + enumeración de offsets).
  • ASLR. El laboratorio desactiva ASLR mediante setarch -R. Los objetivos reales tienen ASLR activado — se requiere una primitiva adicional de fuga de información.
  • Dependencia de configuración. La superficie vulnerable requiere la combinación rewrite ... ? + set $X $N en el nginx.conf desplegado. Muchas configuraciones reales carecen de esto.

Créditos

  • Descubrimiento del bug + PoC original: depthfirst
  • Este fork: añade el modo de detección --check, la enumeración de offsets --probe, el fixture parcheado, el asistente de descubrimiento de direcciones y el verificador de doble fixture.
Descargar herramienta