
Verificatore Python senza dipendenze che rileva CVE-2026-24733, un bypass dei vincoli di sicurezza HEAD HTTP/0.9 di Apache Tomcat, con output JSON e codici di uscita per CI/CD.
HEAD in stile HTTP/0.9 in determinate configurazioni di security-constraint.Un verificatore di sicurezza Python leggero e senza dipendenze per
CVE-2026-24733, un bypass delle security-constraint tramite HEAD
HTTP/0.9 in Apache Tomcat.
Il progetto è pensato per:
Solo test autorizzati. Scansiona esclusivamente sistemi di tua proprietà o per i quali hai esplicita autorizzazione.
Apache Tomcat gestiva in modo errato una richiesta HEAD in stile HTTP/0.9
in determinate configurazioni di security-constraint.
La condizione rilevante è una configurazione in cui:
GET a una risorsa è limitatoHEAD è consentitoHEAD in stile HTTP/0.9Nelle versioni di Tomcat interessate, ciò poteva comportare un bypass delle security-constraint.
Si tratta principalmente di una vulnerabilità comportamentale dipendente dalla configurazione. Pertanto, rilevare da sola una versione di Tomcat interessata non dovrebbe essere automaticamente considerato prova di sfruttamento.
Secondo gli avvisi di sicurezza di Apache Tomcat:
| Branch | Versione corretta |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
Le versioni interessate sono le corrispondenti versioni precedenti in quei branch supportati.
Consulta sempre l'avviso ufficiale di Apache prima di prendere decisioni di remediation.
Python 3.9+.
Non sono richiesti pacchetti Python di terze parti.
Il verificatore utilizza solo la libreria standard di Python.
HTTP di 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
Per un laboratorio autorizzato che utilizza un certificato self-signed:
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
Output JSON Per automazione e pipeline SIEM/CI:
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
Esempio:
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
Codici di uscita Codice Significato 0 Non vulnerabile / vulnerabilità non confermata 1 Potenzialmente vulnerabile 2 Non conclusivo o errore dello scanner
Questo rende lo strumento adatto per 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
Metodologia di rilevamento Il verificatore esegue due richieste limitate verso il percorso esplicito fornito dall'operatore:
GET HTTP/1.1 normale Viene inviata una richiesta convenzionale per stabilire il normale comportamento di accesso.
HEAD in stile HTTP/0.9 Il verificatore invia intenzionalmente una richiesta in stile HTTP/0.9:
HEAD /protected
La richiesta non contiene intenzionalmente una versione HTTP né header HTTP/1.x.
Le due osservazioni vengono confrontate.
Un risultato particolarmente interessante è:
GET /protected -> 401/403 HTTP/0.9 HEAD -> risposta ricevuta
Se combinato con una versione di Tomcat interessata, questo viene segnalato come:
POTENZIALMENTE VULNERABILE
Lo strumento utilizza deliberatamente la parola potenzialmente perché componenti di rete, reverse proxy, routing applicativo e policy di sicurezza specifiche dell'endpoint possono influenzare l'osservazione.
Falsi positivi Questo verificatore è intenzionalmente conservativo.
Un risultato POTENZIALMENTE_VULNERABILE dovrebbe essere investigato anziché essere trattato ciecamente come sfruttamento confermato.
Le possibili cause includono:
Reverse proxy
Comportamento del WAF
Load balancer
Nodi backend diversi
Filtri servlet personalizzati
Autorizzazione a livello applicativo
Configurazione specifica dell'endpoint
Server HTTP non Tomcat davanti a Tomcat
Per una remediation ad alta affidabilità, ispeziona la versione di Tomcat e le corrispondenti security constraint.
Progettazione per la sicurezza Il verificatore intenzionalmente non:
esegue crawling del target
enumera directory
esegue brute-force di URL
aggira l'autenticazione
estrae dati applicativi protetti
esegue comandi
carica file
modifica lo stato del server
tenta escalation di privilegi
concatena il problema in un'altra vulnerabilità
L'operatore fornisce esplicitamente l'endpoint da testare.
La raccolta delle risposte è limitata per evitare di scaricare inutilmente risposte di grandi dimensioni.
Flusso di lavoro difensivo consigliato Se lo strumento segnala:
POTENZIALMENTE VULNERABILE
Identifica la versione effettiva del backend Tomcat.
Verifica se l'endpoint utilizza una security constraint con GET limitato / HEAD consentito.
Controlla il routing del reverse proxy/WAF.
Aggiorna Tomcat alla release corretta appropriata.
Ripeti il test sullo stesso endpoint.
Esamina i log per traffico HTTP/0.9 inatteso.
Se necessario, blocca temporaneamente le richieste HTTP/0.9 malformate a livello di reverse proxy durante l'esecuzione della remediation.
Divulgazione responsabile Se il test identifica un problema di sicurezza precedentemente sconosciuto:
Non divulgare pubblicamente informazioni sensibili sul target.
Conserva le prove rilevanti.
Notifica l'organizzazione interessata.
Segui il processo di segnalazione di sicurezza del fornitore.
Coordina responsabilmente le tempistiche di divulgazione.
Riferimenti Avvisi di sicurezza di Apache Tomcat:
CVE:
NVD:
Licenza Licenza MIT.
Usa in modo responsabile e solo contro sistemi per i quali disponi di autorizzazione.