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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - cakephp-smtp-crlf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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 内の同じコールバックMailTransport のインクルードリストとストリップコールバックを使った getHeadersString でラボ実証済み。このラボは PHP の mail() を呼び出さない
単独 LF だけでなく単独 CR もok\rBcc: ...ラボで実証済み。ペアのみのストリップでは \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 のストリップラボで実証済み、クローズ。コントロールは okBcc:... を連結する
スケルトンアプリでの未認証 RCEこの残存ではないクローズ
マルチパート filename= CRLF5.4.2 は既に "/\r/\n をストリップするクローズ

発見の経緯

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 を参照。ループバックラボのみ。無保証。

ツールをダウンロード