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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cakephp-smtp-crlf — CakePHP 5.4.2 - 高 - リモート - ヘッダーインジェクション - SmtpTransport 単独 LF 残留 GHSA-2qh5 | Kitploit
ツール/GitHubGitHub/abraxas/cakephp-smtp-crlf
脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ウェブセキュリティペネトレーションテストメールセキュリティ
GitHubabraxas/cakephp-smtp-crlf

cakephp-smtp-crlf

CakePHP 5.4.2 - 高 - リモート - ヘッダーインジェクション - SmtpTransport 単独 LF 残留 GHSA-2qh5

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - cakephp-smtp-crlf

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

解説記事: https://abraxaslabs.tech/research/cakephp-smtp-crlf

cakephp-smtp-crlf

分類: メールヘッダインジェクション 到達範囲: リモート

CakePHP 5.4.2 (887b641) - Cake Software Foundation

GHSA-2qh5 / CVE-2026-77634 は SmtpTransport と MailTransport に str_replace("\r\n", '', $val) を追加しました。このコールバックは単独の LF や CR に対しては何もしません。ヘッダ名は依然としてサニタイズされずに連結されます。PHP の mail() と、私たちが取得した SMTP DATA は、単独の LF を新しいヘッダ行として扱います。

アプリケーションがユーザーデータをカスタムヘッダにコピーする場合、攻撃者は CRLF の代わりに LF を送ることで、Bcc を追加したり、Subject を書き換えたり、本文に侵入したりできます。 公表された修正はこれを防げません。標準の cakephp/app は、それ自体ではリクエストデータをカスタムヘッダに入れません。

IDCVE 未割当
分類メールヘッダインジェクション (GHSA-2qh5 の単独 LF 残存)
到達範囲リモート (GHSA-2qh5 と同様: アプリがユーザーデータを Message::setHeaders にコピーする)
CWECWE-93
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
製品CakePHP
影響を受けるバージョン5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
認証GHSA-2qh5 と同様: アプリがユーザーデータを Message::setHeaders / addHeaders にコピーする
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

リクエストデータをカスタムメールヘッダに入れるアプリケーションが必要です。

権限メソッド / シンクラボで実証済みか推測か
SMTP DATA のヘッダブロックに余分な Bcc: (または Cc: / To:) 行を注入するsetHeaders(['X-Meta' => "ok\nBcc: [email protected]"]) の後に SmtpTransport::sendラボで実証済み。SMTP DATA と getHeadersString の両方に新しい Bcc: 行が現れる。証拠 X-Oracle: CAKEPHP-SMTP-CRLF-WITNESS
MailTransport 経由で同じ注入を行うMailTransport::send 内の同じコールバックgetHeadersString 上で、MailTransport のインクルードリストと strip コールバックを用いてラボで実証済み。このラボは PHP の mail() を呼び出さない
単独の LF だけでなく単独の CR も同様ok\rBcc: ...ラボで実証済み。ペアのみの strip では \r が残る。CR/LF で分割するヘッダパーサはこれを新しい行として扱う
Subject を書き換える、または本文に侵入する値に \nSubject: または \n\n を含める同じ連結処理からの推測。ラボでは Bcc / X-Oracle を注入し、Subject は注入していない
エンベロープ受信者の追加DATA 内に注入された Bcc推測。一部の MTA は DATA を再パースする。Cake の RCPT TO は依然として Message オブジェクトの setTo / setCc / setBcc のみを使用する
2 バイトの \r\n ペアGHSA-2qh5 の stripラボで実証済み、クローズ。対照では okBcc:... が連結される
スケルトンアプリでの未認証 RCEこの残存問題ではないクローズ
マルチパートの filename= CRLF5.4.2 はすでに "/\r/\n を strip するクローズ

発見の経緯

GHSA-2qh5、GHSA-fxf7、GHSA-vjqc、および 5.4.2 の filename= に関する注記の後、cakephp/cakephp 5.4.2 を固定しました。トランスポートのテストは "line one\r\nline two" のみを送信し、line oneline two を期待しています。

SmtpTransport 5.4.2:

$headers = $message->getHeadersString(
    [...],
    "\r\n",
    function (string $val): string {
        return str_replace("\r\n", '', $val);
    },
);

MailTransport も同じコールバックを使用します。Message::getHeadersString はコールバックを値にマッピングし、その後 $key . ': ' . $val を実行します。

すでに記録されている誤った道筋:GHSA-2qh5 をクローズ済みとして扱い、そのまま離れてしまうこと。ラボで PHP の mail() を呼び出すこと(オラクルは SMTP DATA と getHeadersString)。これをスケルトンアプリ上の未認証 RCE にまで誇張すること。見せかけ:リバースシェル。

ラボ

python3 cakephp-smtp-crlf-Abraxas-Labs.py

または

cd lab
./run.sh

PHP 8.3 上の Composer cakephp/cakephp:5.4.2。127.0.0.1:19410 にループバック SMTP シンク。

  1. 対照: X-Meta = ok\r\nBcc: [email protected]\r\nX-Oracle: CAKEPHP-SMTP-CRLF-WITNESS。結果: ヘッダーが 1 つ X-Meta: okBcc: [email protected]: CAKEPHP-SMTP-CRLF-WITNESS。
  2. LF ケース: \n のみの同じペイロード。結果: SMTP DATA、Smtp の getHeadersString、および Mail の getHeadersString に新しい Bcc: 行と X-Oracle: 行が追加される。
  3. CR ケース: \r のみの同じペイロード。同様に追加の行が発生する。
SUCCESS cakephp-smtp-crlf pin=5.4.2 control-crlf-stripped=yes lf-bcc=yes cr-leftover=yes how=smtp-data-bcc-line CAKEPHP-SMTP-CRLF-WITNESS

修正

ヘッダー名とヘッダー値に含まれる \r または \n を除去するか拒否します(5.4.2 の filename= サニタイザーと同じです)。トランスポートのテストでは、\r\n のペアだけでなく、単独の LF と単独の CR もカバーしてください。

参考資料

  • github.com/cakephp/cakephp タグ 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Mailer/Transport/SmtpTransport.php · src/Mailer/Transport/MailTransport.php · src/Mailer/Message.php
  • 近接する修正済み(ペアのみ): GHSA-2qh5-382h-3jpc / CVE-2026-77634
  • CWE-93

ライセンス

GNU Affero GPL v3.0。LICENSE を参照してください。ループバックラボ専用です。保証はありません。

ツールをダウンロード