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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cakephp-cookie-suffix — CakePHP 5.4.2 - 高 - リモート - Cookie - Http Client の cookie jar がドメインを正規表現のサフィックスとしてマッチングする | Kitploit
ツール/GitHubGitHub/abraxas/cakephp-cookie-suffix
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティ論文と研究
GitHubabraxas/cakephp-cookie-suffix

cakephp-cookie-suffix

CakePHP 5.4.2 - 高 - リモート - Cookie - Http Client の cookie jar がドメインを正規表現のサフィックスとしてマッチングする

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - cakephp-cookie-suffix

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cakephp-cookie-suffix

cakephp-cookie-suffix

クラス: Cookie リーク / 植え付け 到達範囲: リモート

CakePHP 5.4.2 (887b641) - Cake Software Foundation

CookieCollection::findMatchingCookies は preg_match('/' . preg_quote($domain) . '$/', $host) を使用しています。これは文字列のサフィックスであり、RFC 6265 のドメインマッチではありません。api.partner.com 用の Cookie が evilapi.partner.com に送信されます。bank.com 用の Cookie が notbank.com に送信されます。

Cookie::createFromHeaderString() もまた、レスポンスホストに対するチェックなしで Set-Cookie の Domain= をコピーします。attacker.test からの addFromResponse で Domain=victim.internal を指定すると、その Cookie が保存され、後に victim.internal に添付されます。

デフォルトのジャーを使用して複数のホストにまたがって Cake\Http\Client を使用するアプリは、パートナーセッション Cookie をサフィックス混同された兄弟ホストに漏洩させるか、攻撃者の URL を取得した後に内部ホストに Cookie を植え付ける可能性があります。 other.com は一致しません。これはブラウザの Cookie バグではありません。素の cakephp/app はそれ自体で2番目のホストを呼び出しません。

IDCVE はまだありません
クラスCookie リーク / 植え付け (正規表現サフィックスドメインマッチ)
到達範囲リモート (アプリがホスト間で Http Client ジャーを使用)
CWECWE-565, CWE-201
CVSSHigh: 8.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
製品CakePHP
影響を受けるバージョン5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
認証アプリがホスト間でデフォルトの Cookie ジャーを使用して Cake\Http\Client を使用
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

複数のホストにまたがって Cake\Http\Client の Cookie を保持するアプリケーションが必要です (OAuth、Webhook、ユーザー提供 URL、2番目の API)。

権限メソッド / シンクラボで実証済みまたは推測
保存された Cookie をサフィックス混同された兄弟ホストに漏洩させるドメイン api.partner.com の Cookie の後、https://evilapi.partner.com/ に対して CookieCollection::addToRequestラボで実証済み。リクエストの Cookie は sid=SECRET。RFC 6265 では一致しない
登録可能なサフィックスに対する同じリークCookie ドメイン bank.com、リクエストホスト notbank.comラボで実証済み。リクエストの Cookie は sid=SECRET
ネガティブコントロールリクエストホスト other.comラボで実証済み。Cookie ヘッダーなし
内部ホスト用の Cookie を植え付けるhttps://attacker.test/ からの Set-Cookie: sid=x; Domain=victim.internal の addFromResponseラボで実証済み。保存されたドメインは victim.internal。そのホストへの次のリクエストで sid=x が送信される
次の Client 呼び出しでのセッション固定 / 盗まれたパートナーセッション植え付けられた、または漏洩した sid が API セッションとして使用される推測。ラボは Cookie ヘッダーオラクルで停止
同一ホストへの送信は依然として機能するCookie ドメイン api.partner.com からホスト api.partner.com へラボで実証済み。予想通りであり、バグではない

この残り物でクローズ: other.com は一致しません。ブラウザの Cookie ジャーはこのバグではありません。シェルはありません。スケルトンアプリに対する未認証 RCE ではありません。

発見方法

GHSA-2qh5、GHSA-fxf7、GHSA-vjqc、および 5.4.2 の filename= ノートの後、cakephp/cakephp 5.4.2 をピン留めしました。Http Client の Cookie マッチングは正規表現サフィックスです:

$pattern = '/' . preg_quote($domain, '/') . '$/';
if (!preg_match($pattern, $host)) {
    continue;
}

addFromResponse はリクエストホストをデフォルトとしてのみ渡します。Set-Cookie からの Domain= 属性がそれを上書きし、保存されます。

すでに記録された誤った方向: これをブラウザの Cookie バグとして扱うこと。other.com も一致すると主張すること。ホスト間でジャーを使用するアプリなしに Cookie ヘッダーオラクルを ATO に誇張すること。茶番: リバースシェル。

ラボ

python3 cakephp-cookie-suffix-Abraxas-Labs.py

または

cd lab
./run.sh

PHP 8.3 で Git クローンタグ 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)。127.0.0.1:19420 でループバックオラクル HTTP。追加の HTTP オリジンは不要です。オラクルはピンから CookieCollection を実行します。

  1. sid=SECRET ドメイン api.partner.com を追加。addToRequest https://evilapi.partner.com/ -> Cookie: sid=SECRET。
  2. コントロール https://other.com/ -> Cookie ヘッダーなし。
  3. 同一ホスト https://api.partner.com/ は依然として sid=SECRET を送信。
  4. 追加サフィックス bank.com -> https://notbank.com/ は sid=SECRET を送信。
  5. https://attacker.test/ からの addFromResponse で Set-Cookie: sid=x; Domain=victim.internal; Path=/。次の https://victim.internal/ は sid=x を送信。
SUCCESS cakephp-cookie-suffix suffix-leak=yes control-other=yes plant-domain=yes how=cakephp-5.4.2 CAKEPHP-COOKIE-SUFFIX-WITNESS

修正

RFC 6265 ドメインマッチ (host === domain || str_ends_with($host, '.' . $domain))。Domain が省略された場合はホストオンリー Cookie。リクエストホストにドメインマッチしない Domain を拒否。パブリックサフィックスを拒否。

参考文献

  • github.com/cakephp/cakephp タグ 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Http/Cookie/CookieCollection.php · src/Http/Cookie/Cookie.php
  • RFC 6265 domain-match
  • CWE-565 · CWE-201

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。保証なし。

ツールをダウンロード