
Vérificateur Python sans dépendances qui détecte CVE-2026-24733, un contournement de contrainte de sécurité HEAD HTTP/0.9 dans Apache Tomcat, avec sortie JSON et codes de sortie CI/CD.
HEAD de style HTTP/0.9 dans certaines configurations de contraintes de sécurité.Un vérificateur de sécurité Python léger et sans dépendances pour
CVE-2026-24733, un contournement de contrainte de sécurité HEAD
HTTP/0.9 dans Apache Tomcat.
Le projet est conçu pour :
Tests autorisés uniquement. Ne scannez que les systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite de test.
Apache Tomcat a mal géré une requête HEAD de style HTTP/0.9 dans
certaines configurations de contraintes de sécurité.
La condition pertinente est une configuration dans laquelle :
GET à une ressource est restreintHEAD est autoriséHEAD de style HTTP/0.9Dans les versions de Tomcat affectées, cela pouvait entraîner un contournement de contrainte de sécurité.
Il s'agit principalement d'une vulnérabilité comportementale dépendante de la configuration. Par conséquent, la détection d'une version de Tomcat affectée ne doit pas automatiquement être considérée comme une preuve d'exploitation.
Selon les avis de sécurité d'Apache Tomcat :
| Branche | Version corrigée |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
Les versions affectées sont les versions antérieures correspondantes dans ces branches prises en charge.
Consultez toujours l'avis officiel d'Apache avant de prendre des décisions de remédiation.
Python 3.9+.
Aucun paquet Python tiers n'est requis.
Le vérificateur utilise uniquement la bibliothèque standard de Python.
HTTP de base :
python3 cve_2026_24733.py \
http://127.0.0.1:8080/protected
HTTPS :
python3 cve_2026_24733.py \
https://127.0.0.1:8443/protected
Pour un laboratoire autorisé utilisant un certificat auto-signé :
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
Sortie JSON Pour l'automatisation et les pipelines SIEM/CI :
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
Exemple :
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
Codes de sortie Code Signification 0 Non vulnérable / vulnérabilité non confirmée 1 Potentiellement vulnérable 2 Non concluant ou erreur du scanner
Cela rend l'outil adapté au CI/CD :
python3 cve_2026_24733.py \
--json \
https://target.example/protected
if [ $? -eq 1 ]; then
echo "Potential CVE-2026-24733 exposure"
exit 1
fi
Méthodologie de détection Le vérificateur effectue deux requêtes limitées vers le chemin explicite fourni par l'opérateur :
GET HTTP/1.1 normal Une requête conventionnelle est envoyée pour établir le comportement d'accès normal.
HEAD de style HTTP/0.9 Le vérificateur envoie une requête intentionnellement de style HTTP/0.9 :
HEAD /protected
La requête ne contient intentionnellement pas de version HTTP ni d'en-têtes HTTP/1.x.
Les deux observations sont comparées.
Un résultat particulièrement intéressant est :
GET /protected -> 401/403 HTTP/0.9 HEAD -> réponse reçue
Lorsqu'il est combiné à une version de Tomcat affectée, cela est signalé comme :
POTENTIELLEMENT VULNÉRABLE
L'outil utilise délibérément le mot potentiellement car les composants réseau, les reverse proxies, le routage applicatif et les politiques de sécurité spécifiques aux points de terminaison peuvent affecter l'observation.
Faux positifs Ce vérificateur est intentionnellement conservateur.
Un résultat POTENTIALLY_VULNERABLE doit être investigué plutôt que considéré aveuglément comme une exploitation confirmée.
Les causes possibles incluent :
Reverse proxies
Comportement du WAF
Équilibreurs de charge
Nœuds backend différents
Filtres de servlet personnalisés
Autorisation au niveau applicatif
Configuration spécifique au point de terminaison
Serveurs HTTP non-Tomcat devant Tomcat
Pour une remédiation à haute confiance, inspectez la version de Tomcat et les contraintes de sécurité correspondantes.
Conception sécurisée Le vérificateur ne fait intentionnellement pas :
crawler la cible
énumérer les répertoires
brute-forcer les URL
contourner l'authentification
extraire des données applicatives protégées
exécuter des commandes
téléverser des fichiers
modifier l'état du serveur
tenter une élévation de privilèges
enchaîner le problème avec une autre vulnérabilité
L'opérateur fournit explicitement le point de terminaison testé.
La collecte des réponses est plafonnée pour éviter de télécharger inutilement de grandes réponses.
Flux de travail défensif recommandé Si l'outil signale :
POTENTIELLEMENT VULNÉRABLE
Identifiez la version réelle du backend Tomcat.
Vérifiez si le point de terminaison utilise une contrainte de sécurité GET-restreint / HEAD-autorisé.
Vérifiez le routage reverse-proxy/WAF.
Mettez à niveau Tomcat vers la version corrigée appropriée.
Retestez le même point de terminaison.
Examinez les journaux pour détecter un trafic HTTP/0.9 inattendu.
Si nécessaire, bloquez temporairement les requêtes HTTP/0.9 malformées au niveau du reverse proxy pendant la remédiation.
Divulgation responsable Si les tests identifient un problème de sécurité jusqu'alors inconnu :
Ne divulguez pas publiquement d'informations sensibles sur la cible.
Préservez les preuves pertinentes.
Notifiez l'organisation affectée.
Suivez le processus de signalement de sécurité du fournisseur.
Coordonnez les délais de divulgation de manière responsable.
Références Avis de sécurité Apache Tomcat :
https://tomcat.apache.org/security-9
https://tomcat.apache.org/security-10
https://tomcat.apache.org/security-11
CVE :
https://www.cve.org/CVERecord?id=CVE-2026-24733
NVD :
https://nvd.nist.gov/vuln/detail/CVE-2026-24733
Licence Licence MIT.
Utilisez de manière responsable et uniquement contre les systèmes pour lesquels vous disposez d'une autorisation.