| フィールド | 値 |
|---|
| CVE ID | CVE-2026-24072 |
| 深刻度 | 中程度(ローカル権限昇格 / 情報漏えい) |
| 影響を受けるバージョン | Apache HTTP Server <= 2.4.66 |
| 修正バージョン | Apache HTTP Server 2.4.67 |
| 攻撃ベクトル | ローカル(.htaccess への書き込み権限が必要) |
CVE-2026-24072-analysis.mdmod_rewrite.diff、mod_setenvif.diff、mod_proxy_fcgi.diffexamples/Apache の式評価エンジン(ap_expr)は、ファイルシステムの調査機能を提供します:
file(path) — ファイルの内容を読み取るfilesize(path) — ファイルサイズを返す-d path、-e path、-f path、-s path、-L path、-h path、-x path — ファイルシステムのテスト2.4.66 以前では、mod_rewrite(RewriteCond expr=... 経由)、mod_setenvif(SetEnvIfExpr 経由)、mod_proxy_fcgi(ProxyFCGIBackendType 条件式経由)などのモジュールが、.htaccess コンテキストで動作する際に AP_EXPR_FLAG_RESTRICTED フラグを渡さずに ap_expr 式を解析・評価していました。これは、.htaccess ファイルを書き込めるローカルユーザーであれば誰でも、これらの式関数を使用して、httpd プロセスの完全な権限でファイルシステムを調査または読み取ることができることを意味します。
修正は概念的にシンプルです: .htaccess コンテキストで ap_expr 式を解析する際に、AP_EXPR_FLAG_RESTRICTED フラグを渡します。
修正された3つのモジュールはすべて、同じイディオムを使用して .htaccess 解析コンテキストを検出します:
int in_htaccess = cmd->pool == cmd->temp_pool;
Apache が .htaccess ファイルを解析するとき、ディレクトリ単位の設定プール(cmd->pool)は一時プール(cmd->temp_pool)と同じになります。これは、メインサーバー/仮想ホストコンテキストと .htaccess(ディレクトリ単位)コンテキストを検出するための、Apache のよく知られた内部規約です。
| ファイル | 説明 |
|---|---|
CVE-2026-24072-analysis.md | 完全な技術分析と影響評価 |
mod_rewrite.diff | modules/mappers/mod_rewrite.c のパッチ |
mod_setenvif.diff | modules/metadata/mod_setenvif.c のパッチ |
mod_proxy_fcgi.diff | modules/proxy/mod_proxy_fcgi.c のパッチ |
httpd-2.4.66/ | 脆弱な Apache バージョンのソースツリー |
httpd-2.4.67/ | 修正済み Apache バージョンのソースツリー |
examples/ | 概念実証の .htaccess ファイル |
このリポジトリには、脆弱な mod_rewrite モジュールと修正済みの mod_rewrite モジュールを切り替えて修正が機能することを検証できるDocker ベースのテストラボが含まれています:
# ラボをビルドして起動
make build
make up
# 完全な自動テストマトリックスを実行(両方のバリアント)
make test
このラボは、daemon ユーザー(httpd が実行されるユーザー)のみが読み取り可能なセンチネルファイル(/opt/sentinel/secret.txt)を使用します。脆弱なビルドでは、.htaccess 式がセンチネルの内容を読み取り、照合できます。修正済みビルドでは、解析が not available in restricted context で失敗します。
完全なガイドは docs/TESTING.md を参照してください。
| ファイル | 説明 |
|---|---|
CVE-2026-24072-analysis.md | 完全な技術分析と影響評価 |
mod_rewrite.diff | modules/mappers/mod_rewrite.c のパッチ |
mod_setenvif.diff | modules/metadata/mod_setenvif.c のパッチ |
mod_proxy_fcgi.diff | modules/proxy/mod_proxy_fcgi.c のパッチ |
httpd-2.4.66/ | 脆弱な Apache バージョンのソースツリー |
httpd-2.4.67/ | 修正済み Apache バージョンのソースツリー |
examples/ | 概念実証の .htaccess ファイル |
docker/ | テストラボ用の Docker ビルドファイル |
scripts/ | 切り替えおよびテストスクリプト |
tests/ | テストフィクスチャとマトリックス |
docs/TESTING.md | 完全なテストガイド |
docs/session/ | 設計プロセスからのセッションエクスポート |
このリポジトリは教育および防御目的のみです。概念実証の例は、セキュリティ専門家がこの脆弱性を理解し防御するのに役立つことを意図しています。所有していないシステムや明示的なテスト許可がないシステムでこれらの手法を使用しないでください。