
Verificador de Python sin dependencias que detecta CVE-2026-24733, un bypass de restricción de seguridad HEAD HTTP/0.9 de Apache Tomcat, con salida JSON y códigos de salida de CI/CD.
HEAD al estilo HTTP/0.9 bajo ciertas configuraciones de restricciones de seguridad.Un verificador de seguridad en Python ligero y sin dependencias para
CVE-2026-24733, un bypass de restricciones de seguridad mediante HEAD
HTTP/0.9 en Apache Tomcat.
El proyecto está diseñado para:
Solo pruebas autorizadas. Solo escanee sistemas que posea o para los que tenga permiso explícito de probar.
Apache Tomcat manejaba incorrectamente una solicitud HEAD al estilo HTTP/0.9 bajo
ciertas configuraciones de restricciones de seguridad.
La condición relevante es una configuración en la que:
GET a un recurso está restringidoHEAD está permitidoHEAD al estilo HTTP/0.9En las versiones afectadas de Tomcat, esto podría dar lugar a un bypass de restricciones de seguridad.
Esta es principalmente una vulnerabilidad de comportamiento dependiente de la configuración. Por lo tanto, detectar únicamente una versión afectada de Tomcat no debería tratarse automáticamente como prueba de explotación.
Según los avisos de seguridad de Apache Tomcat:
| Rama | Versión corregida |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
Las versiones afectadas son las versiones anteriores correspondientes en esas ramas soportadas.
Consulte siempre el aviso oficial de Apache antes de tomar decisiones de remediación.
Python 3.9+.
No se requieren paquetes de Python de terceros.
El verificador utiliza únicamente la biblioteca estándar de 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 un laboratorio autorizado que utilice un certificado autofirmado:
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
Salida JSON Para automatización y pipelines de SIEM/CI:
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
Ejemplo:
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
Códigos de salida Código Significado 0 No vulnerable / vulnerabilidad no confirmada 1 Potencialmente vulnerable 2 No concluyente o error del escáner
Esto hace que la herramienta sea adecuada 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
Metodología de detección El verificador realiza dos solicitudes limitadas contra la ruta explícita proporcionada por el operador:
GET HTTP/1.1 normal Se envía una solicitud convencional para establecer el comportamiento de acceso normal.
HEAD al estilo HTTP/0.9 El verificador envía una solicitud intencionadamente al estilo HTTP/0.9:
HEAD /protected
La solicitud intencionadamente no contiene una versión HTTP ni cabeceras HTTP/1.x.
Se comparan las dos observaciones.
Un resultado particularmente interesante es:
GET /protected -> 401/403 HTTP/0.9 HEAD -> respuesta recibida
Cuando se combina con una versión afectada de Tomcat, esto se reporta como:
POTENCIALMENTE VULNERABLE
La herramienta utiliza deliberadamente la palabra potencialmente porque los componentes de red, proxies inversos, enrutamiento de aplicaciones y políticas de seguridad específicas del endpoint pueden afectar la observación.
Falsos positivos Este verificador es intencionadamente conservador.
Un resultado POTENCIALMENTE_VULNERABLE debe investigarse en lugar de tratarse ciegamente como explotación confirmada.
Las posibles causas incluyen:
Proxies inversos
Comportamiento de WAF
Balanceadores de carga
Nodos backend diferentes
Filtros de servlet personalizados
Autorización a nivel de aplicación
Configuración específica del endpoint
Servidores HTTP que no son Tomcat delante de Tomcat
Para una remediación de alta confianza, inspeccione la versión de Tomcat y las restricciones de seguridad correspondientes.
Diseño de seguridad El verificador intencionadamente no:
rastrea el objetivo
enumera directorios
fuerza URLs por fuerza bruta
elude la autenticación
extrae datos de aplicación protegidos
ejecuta comandos
sube archivos
modifica el estado del servidor
intenta escalada de privilegios
encadena el problema con otra vulnerabilidad
El operador proporciona explícitamente el endpoint que se está probando.
La recopilación de respuestas está limitada para evitar descargar respuestas grandes innecesariamente.
Flujo de trabajo defensivo recomendado Si la herramienta reporta:
POTENCIALMENTE VULNERABLE
Identifique la versión real del backend de Tomcat.
Verifique si el endpoint utiliza una restricción de seguridad con GET restringido / HEAD permitido.
Compruebe el enrutamiento del proxy inverso/WAF.
Actualice Tomcat a la versión corregida adecuada.
Vuelva a probar el mismo endpoint.
Revise los registros en busca de tráfico HTTP/0.9 inesperado.
Si es necesario, bloquee temporalmente las solicitudes HTTP/0.9 malformadas en el proxy inverso mientras se realiza la remediación.
Divulgación responsable Si las pruebas identifican un problema de seguridad previamente desconocido:
No divulgue públicamente información sensible del objetivo.
Conserve las pruebas relevantes.
Notifique a la organización afectada.
Siga el proceso de reporte de seguridad del proveedor.
Coordine los plazos de divulgación de manera responsable.
Referencias Avisos de seguridad de Apache Tomcat:
CVE:
NVD:
Licencia Licencia MIT.
Use de manera responsable y solo contra sistemas para los que tenga autorización.