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-scan — Escanea tu configuración de NGINX para determinar si está afectada por CVE-2026-42945. | Kitploit
Herramientas/GitHubGitHub/realityone/cve-2026-42945-scan
Análisis EstáticoEscáneres de VulnerabilidadesAuditoría de ConfiguraciónSeguridad WebMala Configuración
GitHubrealityone/cve-2026-42945-scan

cve-2026-42945-scan

Escanea tu configuración de NGINX para determinar si está afectada por CVE-2026-42945.

Ver Repositorio
1hace 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 →
Compartir

cve-2026-42945-scan

Escáner estático para archivos de configuración de NGINX que detecta el patrón rewrite/set asociado con CVE-2026-42945.

El escáner analiza configuraciones de NGINX con crossplane, recorre los bloques location e imprime cada ubicación que parezca afectada en este formato:

root@kitploit:~
/<path-to>/xxx.conf:<line-number> -> location XXXXX

Ejemplo:

root@kitploit:~
/path/to/nginx.conf:39 -> location ~ ^/api/(.*)$

Referencia: CVE-2026-42945-POC.

Requisitos

  • Python 3.10 o superior
  • uv

Las dependencias se gestionan con uv en pyproject.toml y se fijan en uv.lock. La única dependencia en tiempo de ejecución es crossplane.

Configuración

Desde la raíz del repositorio:

root@kitploit:~
uv sync

También puedes omitir un paso de configuración por separado y dejar que uv run cree el entorno en el primer uso.

Uso

Escanea un archivo de configuración:

root@kitploit:~
uv run ./scan.py /etc/nginx/nginx.conf

Escanea un directorio recursivamente:

root@kitploit:~
uv run ./scan.py -r /etc/nginx

Escanea recursivamente desde el directorio actual los archivos *.conf:

root@kitploit:~
uv run ./scan.py -r './*.conf'

Encierra los globs entre comillas cuando quieras que el escáner los expanda recursivamente. Si tu shell expande ./*.conf primero, el escáner solo recibe los archivos que coinciden con el shell.

Escanea solo los archivos proporcionados y no sigas las directivas include:

root@kitploit:~
uv run ./scan.py --single ./site.conf

Muestra las advertencias del analizador, incluidos los archivos include faltantes:

root@kitploit:~
uv run ./scan.py -v -r /etc/nginx

Versión de Go

Hay una implementación en Go con el mismo formato de salida y los mismos códigos de salida disponible en go/. Utiliza nginx-go-crossplane para analizar la configuración de NGINX y pflag para los flags de CLI. Requiere Go 1.23 o superior.

Ejecútalo con go run:

root@kitploit:~
cd go
go run . -r ../tests/fixtures

Cuando hay hallazgos, el escáner sale con el código 1. go run imprimirá una línea adicional exit status 1 en ese caso; compila el binario cuando quieras solo la salida del escáner.

Compila un binario independiente:

root@kitploit:~
cd go
go build -o cve-2026-42945-scan-go .
./cve-2026-42945-scan-go -r ../tests/fixtures

Qué detecta

El patrón de configuración de riesgo es un location que contiene:

  • una directiva rewrite cuyo reemplazo contiene un ? sin escapar
  • sin un flag de rewrite terminal como last, break, redirect o permanent
  • una directiva set posterior que copia una captura de expresión regular como $1, ${1}, $name o ${name}

Ejemplo de patrón vulnerable:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}

El escáner informa de la línea del location, no de la de rewrite o set, porque la ubicación es el bloque accionable que se debe inspeccionar y corregir.

Fixtures de prueba

El directorio tests/fixtures/ contiene configuraciones pequeñas de NGINX que se pueden usar como ejemplos:

Ejecuta el escáner contra todos los fixtures de ejemplo:

root@kitploit:~
uv run ./scan.py -r tests/fixtures

Hallazgos esperados:

root@kitploit:~
/absolute/path/to/tests/fixtures/missing_include_still_scans.conf:6 -> location ~ ^/partial/(.*)$
/absolute/path/to/tests/fixtures/named_capture.conf:2 -> location /users
/absolute/path/to/tests/fixtures/vulnerable.conf:2 -> location ~ ^/api/(.*)$

Salida

Si se encuentran ubicaciones afectadas, cada hallazgo se imprime en su propia línea:

root@kitploit:~
/absolute/path/to/file.conf:30 -> location ~ ^/aaaa/dddd/(.*)$
/absolute/path/to/nginx.conf:39 -> location ~ ^/api/(.*)$

La ausencia de salida significa que no se encontró ninguna ubicación afectada en la configuración analizada.

Limitaciones

Este es un escáner estático de configuración. No:

  • verifica la versión de NGINX en ejecución
  • prueba la explotabilidad
  • ejecuta o prueba solicitudes contra un servidor
  • evalúa completamente variables dinámicas o configuraciones generadas
  • detecta fragmentos vulnerables que están ocultos en archivos include faltantes

Trata los hallazgos como ubicaciones que necesitan revisión y remediación. Un host solo está realmente afectado cuando están presentes tanto el rango de versiones vulnerable de NGINX como el patrón de configuración de riesgo.

Desarrollo

Ejecuta la suite de pruebas:

root@kitploit:~
uv run python -m unittest discover -s tests -v

Ejecuta la suite de pruebas de Go:

root@kitploit:~
cd go
go test ./...

Ejecuta la verificación de sintaxis:

root@kitploit:~
uv run python -m py_compile scan.py

Ejecuta contra la configuración del POC incluido:

root@kitploit:~
uv run ./scan.py CVE-2026-42945-POC/env/nginx.conf

Salida esperada:

root@kitploit:~
/absolute/path/to/CVE-2026-42945-POC/env/nginx.conf:39 -> location ~ ^/api/(.*)$
Descargar herramienta
FixtureResultado esperado
tests/fixtures/vulnerable.confinforma de un hallazgo de captura posicional
tests/fixtures/named_capture.confinforma de un hallazgo de captura con nombre
tests/fixtures/missing_include_still_scans.confinforma de un hallazgo aunque falte un include
tests/fixtures/safe_break_flag.confsin hallazgo porque el rewrite usa break
tests/fixtures/safe_no_capture.confsin hallazgo porque no hay ninguna captura disponible