Laravel Framework Flaw Allows Attackers to Execute Malicious JavaScript
2025/03/10 gbhackers — Laravel フレームワークで発見された深刻な脆弱性 CVE-2024-13918 は、バージョン 11.9.0 〜11.35.1 に影響を及ぼすものだ。アプリケーションがデバッグ・モードで実行されているときに、エラー・ページでリクエスト・パラメータが適切にエンコードされないことに起因する問題であり、反射型クロスサイト・スクリプティング (XSS) を引き起こす可能性があるという。Github のレポートによると、この脆弱性 CVE-2024-13918 の CVSS スコアは 8.0 であり、高深刻度だと評価されている。

この脆弱性の悪用により、URL パラメータやリクエスト本文などの、詳細なリクエスト情報を表示する、Laravel のデバッグ・モード・エラー・ページの操作が可能となる。
つまり、これらのデータが表示される際に、適切なエンコードが行われないため、ユーザーのブラウザ内で、攻撃者による悪意の JavaScript コードの挿入/実行が可能となる。
この問題が発生するのは、アプリケーションのデバッグ・モードがアクティブ (APP_DEBUG=true) の場合であり、攻撃者が提供する悪意のリンクに、ユーザーがアクセスするときとなる。
脆弱性の説明
Laravel がデバッグ・モード (APP_DEBUG=true) であり、Web アプリケーションがエラー (HTTP ステータス 5XX) を返す場合には、リクエストの詳細を取り込んだエラー・ページが表示される。
Laravel のエラー・ページのコード・スニペットは、適切なエンコードが欠如した状態で、リクエスト・ボディ・データがエンベッドされる様子を示している。
<div class="mt-1 rounded border dark:border-gray-800">
<div class="flex items-center">
<span
class="min-w-0 flex-grow"
style="[…]"
>
<pre class="scrollbar-hidden mx-5 my-3 overflow-y-hidden text-xs lg:text-sm">
<code class="overflow-y-hidden scrollbar-hidden overflow-x-scroll scrollbar-hidden-x">
{!! $exception->requestBody() ?: 'No body data' !!}
</code>
</pre>
</span>
</div>
</div>
{!! !!} を使用すると HTML エンコードが無効化され、挿入された JavaScript を、コードとして実行できるようになる。
PoC エクスプロイト
この脆弱性を実証する場合には、以下の手順に従ってほしい。
- デバッグ・モードを有効化する:“.env” ファイルで “APP_DEBUG=true” が設定されていることを確認する。
- POCTest ルートを作成する:エラーをトリガーするエンドポイントを、以下のように追加する。
use Illuminate\Support\Facades\Route;
Route::get('/poc-url', function () {
return 0/0; // This will throw a division by zero error.
});
- 悪用の方法:
http://localhost:8000/poc-url?payload=のような、細工された URL にアクセスする。この URL へのアクセスによりエラーが発生すると、エラー・ページが表示され、挿入された JavaScript が実行される。
この脆弱性の影響は甚大である。攻撃者が作成する URL により、ユーザーがアクセスするときに、Web アプリケーションのコンテキストで任意の JavaScript が実行される。それにより、データ窃取やセッション奪取などの、さまざまな悪意のアクションが可能になる。
幸いなことに、すでに Laravel は、バージョン 11.36.0 をリリースし、このフレームワークの問題を解決している。ユーザーに対して強く推奨されるのは、最新バージョンへと速やかにアップデートし、この脆弱性から保護をすることだ。
Web アプリケーションのセキュリティは、最も重要なものである。この Laravel の脆弱性が強調するのは、定期的な更新と堅牢なセキュリティ対策の重要性である。ユーザー・データを保護し、悪意のあるアクティビティを防止するには、Laravel などのツールの整合性の確保が重要となる。
Laravel の XSS の脆弱性が FIX しました。悪用されると、データ窃取やセッション奪取などに至る可能性がある、深刻な脆弱性です。PoC エクスプロイトが提供されたことで、悪用の可能性も高まります。ご利用のチームは、お気をつけください。よろしければ、Laravel で検索も、ご参照ください。
You must be logged in to post a comment.