
CVE-2026-33267 — Apache Traffic Server の @ ヘッダー内部メタデータのスプーフィング (CVSS 10.0)。検証済み: 10.1.2 では @ ヘッダーがプラグインに漏洩、10.1.4 では除去される。
@ ヘッダー → 内部メタデータの偽装CVSS 10.0(緊急) · CWE-20 · GHSA-jrh6-9hgv-mqm7
Apache Traffic Server は @ で始まるヘッダー(@Ats-Internal、@ICAP-Status、@TCPInfo、...)を内部メタデータ用に予約しています。これらはインメモリのヘッダー構造にのみ存在し、ワイヤー上にはシリアライズされません。脆弱なバージョン(9.2.0–9.2.14、10.1.0–10.1.3)では、クライアントリクエストとオリジンレスポンスから取得されるこれらのヘッダーが、プラグインフック(TS_HTTP_READ_REQUEST_HDR_HOOK、TS_HTTP_READ_RESPONSE_HDR_HOOK、リマッププラグイン)の実行前に除去されません。リモートの攻撃者は ATS の内部メタデータを偽装できます。プラグイン(cache、ACL、header_rewrite など)が攻撃者の制御する内部状態を信頼してしまう可能性があり、影響は使用中のプラグインに依存します。
a9aee837db — "CVE-2026-33267: 9.2.x: プラグインフックの前に外部 @ ヘッダーを除去"4ab63dbd93 — 同じ修正HttpTransact::strip_at_headers() は READ_REQUEST_HDR / READ_RESPONSE_HDR フックの前に実行されます。カウンター proxy.process.http.client_request_at_headers_stripped / proxy.process.http.origin_response_at_headers_stripped が追加されました。カスタム at_probe プラグイン(両方のフックで @ ヘッダーをログ記録)と、raw ソケットクライアント(curl は @ ヘッダーを黙って除去します)を使用:
| ビルド | クライアントが送信した @Ats-Internal | オリジンが送信した @Origin-Test |
|---|---|---|
| ATS 10.1.2(脆弱) | 🟥 漏えい(プラグインが観測) | 🟥 漏えい(8 回観測) |
| ATS 10.1.4(修正版、ソースからビルド) | ✅ 除去済み("stripped internal @ header") | ✅ 除去済み |
修正版ビルドでのネガティブコントロール: プラグインによる観測は 0 件(プラグインはヘッダーを一切認識しません)。
python3 at_headers_spoof.py 127.0.0.1 8080 /
GET / を @Ats-Internal: pwned と @Another-At: test 付きで raw ソケット経由で送信し、レスポンスの先頭部分を表示します。脆弱な ATS では、カスタムプラグイン(または @ メタデータを信頼するプラグイン)が偽装されたヘッダーを受信します。修正版ビルドでは、これらのヘッダーはフックの前に除去されます。
@ メタデータを信頼するかに依存します(例: @ フィールドを参照する header_rewrite/cache ディレクティブ)。a9aee837db · 修正 10.1.x: 4ab63dbd93