
의존성 없는 Python 검증기로, Apache Tomcat HTTP/0.9 HEAD 보안 제약 우회인 CVE-2026-24733을 탐지하며, JSON 출력과 CI/CD 종료 코드를 제공합니다.
HEAD 요청을 잘못 처리했습니다.CVE-2026-24733, 즉 Apache Tomcat HTTP/0.9 HEAD security-constraint
우회를 위한 경량의 의존성 없는 Python 보안 검증기입니다.
이 프로젝트는 다음을 위해 설계되었습니다:
승인된 테스트 전용. 본인이 소유하거나 명시적으로 테스트 권한을 받은 시스템만 스캔하십시오.
Apache Tomcat이 특정 security-constraint 구성에서 HTTP/0.9 스타일 HEAD
요청을 잘못 처리했습니다.
관련 조건은 다음과 같은 구성입니다:
GET 접근이 제한됨HEAD는 허용됨HEAD 요청을 수신함영향을 받는 Tomcat 버전에서는 이로 인해 security-constraint 우회가 발생할 수 있습니다.
이는 주로 구성 의존적 동작 취약점입니다. 따라서 영향을 받는 Tomcat 버전을 탐지한 것만으로는 자동으로 익스플로잇의 증거로 간주되어서는 안 됩니다.
Apache Tomcat 보안 권고에 따르면:
| 브랜치 | 수정 버전 |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
영향을 받는 버전은 해당 지원 브랜치의 그 이전 버전들입니다.
완화 결정을 내리기 전에 항상 공식 Apache 권고를 확인하십시오.
Python 3.9+.
서드파티 Python 패키지는 필요하지 않습니다.
검증기는 Python 표준 라이브러리만 사용합니다.
기본 HTTP:
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
자체 서명 인증서를 사용하는 승인된 랩 환경의 경우:
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
JSON 출력 자동화 및 SIEM/CI 파이프라인용:
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
예시:
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
종료 코드 코드 의미 0 취약하지 않음 / 취약점이 확인되지 않음 1 잠재적으로 취약함 2 판단 불가 또는 스캐너 오류
이로 인해 이 도구는 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
탐지 방법론 검증기는 운영자가 명시적으로 제공한 경로에 대해 두 가지 제한된 요청을 수행합니다:
일반 HTTP/1.1 GET 정상적인 접근 동작을 확인하기 위해 일반적인 요청을 전송합니다.
HTTP/0.9 스타일 HEAD 검증기는 의도적으로 HTTP/0.9 스타일 요청을 전송합니다:
HEAD /protected
이 요청은 의도적으로 HTTP 버전이나 HTTP/1.x 헤더를 포함하지 않습니다.
두 관찰 결과를 비교합니다.
특히 흥미로운 결과는 다음과 같습니다:
GET /protected -> 401/403 HTTP/0.9 HEAD -> 응답 수신됨
영향을 받는 Tomcat 버전과 결합될 경우, 이는 다음과 같이 보고됩니다:
POTENTIALLY VULNERABLE
이 도구가 의도적으로 "potentially"라는 단어를 사용하는 이유는 네트워크 구성 요소, 리버스 프록시, 애플리케이션 라우팅, 엔드포인트별 보안 정책이 관찰 결과에 영향을 미칠 수 있기 때문입니다.
오탐 이 검증기는 의도적으로 보수적입니다.
POTENTIALLY_VULNERABLE 결과는 확인된 익스플로잇으로 맹목적으로 간주하기보다는 조사해야 합니다.
가능한 원인은 다음과 같습니다:
리버스 프록시
WAF 동작
로드 밸런서
서로 다른 백엔드 노드
사용자 정의 서블릿 필터
애플리케이션 수준 권한 부여
엔드포인트별 구성
Tomcat 앞단의 비-Tomcat HTTP 서버
높은 신뢰도의 완화를 위해서는 Tomcat 버전과 해당 security constraint를 점검하십시오.
안전 설계 검증기는 의도적으로 다음을 수행하지 않습니다:
대상 크롤링
디렉터리 열거
URL 무차별 대입
인증 우회
보호된 애플리케이션 데이터 추출
명령 실행
파일 업로드
서버 상태 수정
권한 상승 시도
해당 이슈를 다른 취약점과 연계
운영자가 테스트할 엔드포인트를 명시적으로 제공합니다.
불필요하게 큰 응답을 다운로드하는 것을 방지하기 위해 응답 수집은 제한됩니다.
권장 방어 워크플로 도구가 다음과 같이 보고하는 경우:
POTENTIALLY VULNERABLE
실제 Tomcat 백엔드 버전을 식별합니다.
엔드포인트가 GET 제한 / HEAD 허용 security constraint를 사용하는지 확인합니다.
리버스 프록시/WAF 라우팅을 점검합니다.
Tomcat을 적절한 수정 릴리스로 업그레이드합니다.
동일한 엔드포인트를 재테스트합니다.
예상치 못한 HTTP/0.9 트래픽이 있는지 로그를 검토합니다.
필요한 경우, 완화가 수행되는 동안 리버스 프록시에서 잘못된 형식의 HTTP/0.9 요청을 일시적으로 차단합니다.
책임 있는 공개 테스트를 통해 이전에 알려지지 않은 보안 문제가 확인된 경우:
민감한 대상 정보를 공개적으로 공개하지 마십시오.
관련 증거를 보존하십시오.
영향을 받는 조직에 통지하십시오.
벤더의 보안 신고 절차를 따르십시오.
공개 일정을 책임 있게 조율하십시오.
참고 자료 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
라이선스 MIT License.
책임 있게 사용하고, 권한을 보유한 시스템에 대해서만 사용하십시오.