
Verificador Python sem dependências que detecta o CVE-2026-24733, um bypass de security-constraint do Apache Tomcat via HTTP/0.9 HEAD, com saída JSON e códigos de saída para CI/CD.
HEAD no estilo HTTP/0.9 sob certas configurações de security-constraint.Um verificador de segurança em Python leve e sem dependências para
CVE-2026-24733, um bypass de security-constraint via HEAD HTTP/0.9
no Apache Tomcat.
O projeto foi projetado para:
Apenas testes autorizados. Escaneie somente sistemas que você possui ou para os quais tem permissão explícita de teste.
O Apache Tomcat tratou incorretamente uma requisição HEAD no estilo HTTP/0.9 sob
certas configurações de security-constraint.
A condição relevante é uma configuração na qual:
GET a um recurso é restritoHEAD é permitidoHEAD no estilo HTTP/0.9Nas versões afetadas do Tomcat, isso poderia resultar em um bypass de security-constraint.
Esta é primariamente uma vulnerabilidade comportamental dependente de configuração. Portanto, detectar apenas uma versão afetada do Tomcat não deve ser automaticamente tratado como prova de exploração.
De acordo com os avisos de segurança do Apache Tomcat:
| Branch | Versão corrigida |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
As versões afetadas são as versões anteriores correspondentes nesses branches suportados.
Sempre consulte o aviso oficial do Apache antes de tomar decisões de remediação.
Python 3.9+.
Nenhum pacote Python de terceiros é necessário.
O verificador usa apenas a biblioteca padrão do Python.
HTTP básico:
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
Para um laboratório autorizado usando um certificado autoassinado:
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
Saída JSON Para automação e pipelines de SIEM/CI:
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
Exemplo:
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
Códigos de saída Código Significado 0 Não vulnerável / vulnerabilidade não confirmada 1 Potencialmente vulnerável 2 Inconclusivo ou erro do scanner
Isso torna a ferramenta adequada para 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 de detecção O verificador realiza duas requisições limitadas contra o caminho explícito fornecido pelo operador:
GET HTTP/1.1 normal Uma requisição convencional é enviada para estabelecer o comportamento normal de acesso.
HEAD no estilo HTTP/0.9 O verificador envia uma requisição intencionalmente no estilo HTTP/0.9:
HEAD /protected
A requisição intencionalmente não contém uma versão HTTP nem cabeçalhos HTTP/1.x.
As duas observações são comparadas.
Um resultado particularmente interessante é:
GET /protected -> 401/403 HTTP/0.9 HEAD -> resposta recebida
Quando combinado com uma versão afetada do Tomcat, isso é reportado como:
POTENTIALLY VULNERABLE
A ferramenta deliberadamente usa a palavra potentially porque componentes de rede, proxies reversos, roteamento de aplicação e políticas de segurança específicas de endpoint podem afetar a observação.
Falsos positivos Este verificador é intencionalmente conservador.
Um resultado POTENTIALLY_VULNERABLE deve ser investigado em vez de tratado cegamente como exploração confirmada.
Possíveis causas incluem:
Proxies reversos
Comportamento de WAF
Balanceadores de carga
Nós de backend diferentes
Filtros de servlet personalizados
Autorização em nível de aplicação
Configuração específica de endpoint
Servidores HTTP não-Tomcat na frente do Tomcat
Para remediação com alta confiança, inspecione a versão do Tomcat e as security constraints correspondentes.
Design de segurança O verificador intencionalmente não:
rastreia o alvo
enumera diretórios
faz brute-force de URLs
contorna autenticação
extrai dados protegidos da aplicação
executa comandos
faz upload de arquivos
modifica o estado do servidor
tenta escalação de privilégios
encadeia o problema em outra vulnerabilidade
O operador fornece explicitamente o endpoint sendo testado.
A coleta de resposta é limitada para evitar o download desnecessário de respostas grandes.
Fluxo de trabalho defensivo recomendado Se a ferramenta reportar:
POTENTIALLY VULNERABLE
Identifique a versão real do backend Tomcat.
Verifique se o endpoint usa uma security constraint com GET restrito / HEAD permitido.
Verifique o roteamento de proxy reverso/WAF.
Atualize o Tomcat para a versão corrigida apropriada.
Reteste o mesmo endpoint.
Revise os logs em busca de tráfego HTTP/0.9 inesperado.
Se necessário, bloqueie temporariamente requisições HTTP/0.9 malformadas no proxy reverso enquanto a remediação é realizada.
Divulgação responsável Se os testes identificarem um problema de segurança previamente desconhecido:
Não divulgue publicamente informações sensíveis do alvo.
Preserve evidências relevantes.
Notifique a organização afetada.
Siga o processo de relato de segurança do fornecedor.
Coordene os prazos de divulgação de forma responsável.
Referências Avisos de Segurança do Apache Tomcat:
CVE:
NVD:
Licença Licença MIT.
Use com responsabilidade e apenas contra sistemas para os quais você tem autorização.