CVE-2024-40075: XXE Vulnerability Found in Laravel v11.x
2024/07/23 SecurityOnline — 人気の OSS PHP Web フレームワークの Laravel v11.x に、深刻な脆弱性 CVE-2024-40075 が発見された。この XXE (XML External Entity) の脆弱性の悪用に成功した攻撃者は、機密情報にアクセス/任意のコマンド実行の可能性を得る。

この脆弱性の詳細まで分析したセキュリティ研究者の Q16G が、Laravel のコードベース内で悪用される重要なポイントを概説している。この脆弱性は、Laravel のロギング・メカニズムのコア・コンポーネントである、”MonologHandler” クラスの “__destruct” 関数の処理にさかのぼる。悪用プロセスの詳細は以下の通りである:
- “destruct” 関数のトレース: 抽象クラス “MonologHandler” にある “__destruct” 関数が、サブクラスでオーバーライドされていない場合に呼び出されることが特定された。この関数は、最終的に “close” メソッドを呼び出す。

サブクラスの分析: “close” メソッドをオーバーライドし、”__destruct” メソッドをオーバーライドしないサブクラス (groupHandler など) が見つかったことで、実行フローの詳細がトレースができた。

- ハンドラーのイテレーション: “groupHandlerのclose” メソッドで、コードはハンドラーを繰り返し実行し、それらの “close” メソッドを実行することで、”getStreamName” メソッド呼び出しの発見につながっていった。

- トリガーの識別: “getStreamName” メソッドは、次に “md5″ 関数を呼び出すものであり、”__tostring” トリガーを検索する必要がある。この研究者は、重要なコンポーネントとして、実装クラス “PsyReadline\Hoa FileRead” を特定した。

- 関数の実行: 最後に、”__tostring” 関数は “tostring” 関数を呼び出し、”tostring” 関数は “$this->stypes->format” 関数を呼び出すので、この脆弱性を悪用する任意のコマンド実行が可能になる。
脆弱性 CVE-2024-40075 の悪用に成功した攻撃者は、XML 入力を操作することで、未認証でのデータ侵害やシステム侵害を引き起こし、深刻なリスクを発生させる可能性を得る。Web 開発に Laravel が広く使用されているため、その影響は広範囲に及ぶと想定され、世界中の数多くの Web アプリケーションへの影響が懸念される。ユーザーに対して強く推奨されるのは、最新バージョンへのアップデートにより、自身のアプリケーションを保護することである。
Laravel v11.x に、深刻な脆弱性が発見されました。ご利用のチームも多いことかと思います。十分に、ご注意ください。なお、前回の Laravel 関連記事は、2024/04/21 の「Laravel Framework の脆弱性 CVE-2024-29291:ゼロデイ状態で PoC も提供」となっています。よろしければ、ご参照ください。
You must be logged in to post a comment.