LaravelのCRLFインジェクション脆弱性、メール処理への不正介入を可能に

LaravelのPHPフレームワークに深刻度の高いCRLFインジェクション脆弱性が発見・公開されましたCVE-2026-48019として追跡されているこの脆弱性は、Webアプリケーションをメールリレーの悪用や送信メールへの不正改ざんにさらすものです。

2026年6月1日にGitHub Security Advisory GHSA-5vg9-5847-vvmqを通じて公開されたこの脆弱性は、CVSS v3.1ベーススコアで機密性・完全性への高い影響が示されており、ユーザーが入力したメールアドレスを受け付けるアプリケーションに影響します。

CRLFインジェクションとは、アプリケーションがユーザーの入力値に含まれるキャリッジリターン(\r)およびラインフィード(\n)文字を、機密性の高いプロトコル構造に渡す前に無害化できない場合に発生します。

メールやHTTPの文脈では、これらの文字は構造上の区切り文字として機能するため、攻撃者がこれらを挿入することで正規のヘッダーを途中で終端させ、悪意あるコンテンツに置き換えられる可能性があると、OmarXtreamは指摘しています。

この脆弱性はCWE-93「CRLFシーケンスの不適切な無害化」に分類されており、MITREによって体系的に記録されている既知の弱点です。

根本原因は、LaravelのメールバリデーションロジックとSymfony Mailer・Symfony Mimeが行う下流処理との間にあるサニタイズの抜け穴にあります。

Laravelアプリケーションが登録フォーム、お問い合わせページ、または認証フローからユーザー入力のメールアドレスをCRLFシーケンスを除去せずにメール転送層に直接渡した場合、攻撃者は送信メッセージの構造を操作できる状態になります。

特定の条件下では、この脆弱性を悪用するリモート攻撃者が、カスタムヘッダーの挿入やメッセージ本文の改ざんによって送信メールの内容を変更したり、信頼されたインフラを悪用したフィッシングキャンペーンを可能にする意図しない受信者へのメールリダイレクトを実行したりする可能性があります。

この攻撃には認証もユーザー操作も必要ありませんが、脆弱性をトリガーするために特定の条件が必要であることから、攻撃複雑度は「高」と評価されています。

CVSSベクター文字列 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L はスコープが「Changed(変更あり)」と評価されており、悪用の影響が脆弱なLaravelアプリケーション自体を超え、依存する下流のメールインフラにまで直接及ぶことを意味しています。

パスワードリセットトークン、アカウント確認、金融通知といった機密データを含むトランザクションメールを送信する環境では、実質的な深刻度はさらに高まるとOmarXtreamは述べています

12.60.0未満のv12.xブランチおよび13.9.0以下のv13.xブランチのlaravel/frameworkインストールがすべて影響を受けます。セキュリティパッチは以下のバージョンで提供されています。

Laravelのメンテナーはバージョン12.60.0および13.10.0向けのパッチをリリースしており、開発者は直ちにアップグレードすることを強く推奨します。アップグレードは composer update laravel/framework を実行してください。

パッチをすぐに適用できないチームは、preg_match("/(\\r|\\n)/", $value) のようなチェックを用いてCRLFシーケンスを含む入力を拒否するサーバーサイドのミドルウェアを実装することで、悪意あるペイロードがメール処理ロジックに到達する前にリクエスト層でブロックできます。

また、多層防御の観点から、Laravelのネイティブな validate() メソッドやPHPの filter_var() 関数を活用して、ユーザーが入力するすべてのメールアドレスをサニタイズすることも推奨されます。

翻訳元: https://cyberpress.org/laravel-crlf-injection-flaw/

ソース: cyberpress.org