
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
検出方法 本検証ツールは、オペレーターが明示的に指定したパスに対して、2つの限定的なリクエストを実行します:
通常のHTTP/1.1 GET 通常のアクセス動作を確立するために、従来のリクエストを送信します。
HTTP/0.9形式のHEAD 本検証ツールは、意図的にHTTP/0.9形式のリクエストを送信します:
HEAD /protected
このリクエストには、意図的にHTTPバージョンやHTTP/1.xヘッダーが含まれていません。
2つの観測結果が比較されます。
特に興味深い結果は以下のとおりです:
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。
責任を持って、許可を得たシステムに対してのみ使用してください。