CVE-2024-55661: RCE Vulnerability Discovered in Laravel Pulse Monitoring Tool
2024/12/16 SecurityOnline — Laravel アプリケーション向けの、リアルタイム・パフォーマンス監視およびダッシュボード・ツールである Laravel Pulse に、深刻な脆弱性 CVE-2024-55661 (CVSS:8.7) が発見された。この脆弱性の悪用に成功した、Pulse ダッシュボードへのアクセス権を持つ認証済みユーザーにより、サーバ上での任意のコード実行が可能となり、システム全体が侵害される恐れが生じる。Laravel Pulse は、開発者に対して、アプリケーション・パフォーマンスに関する貴重な情報を提供し、ボトルネックの特定および使用状況の監視を可能にするものだ。

この脆弱性は、”Laravel\Pulse\Livewire\Concerns\RemembersQueries” の remember() メソッド内に存在する。Livewire コンポーネントから、このメソッドにアクセスし、その悪用に成功すると、アプリケーション内で任意の関数および静的メソッドの実行が可能になる。
この脆弱性の影響は甚大なものとなる。Laravel Pulse ダッシュボードにアクセスできる認証済みユーザーであれば、この脆弱性を悪用し、サーバ上での任意のコード実行を可能にする。ただし、以下の前提条件がある:
- 呼び出しの対象は、関数または静的メソッドとなる。
- 呼び出しにおいては、パラメータまたは型指定されたパラメータが除外される。
この攻撃を実行する脅威アクターは、システム・コマンドの実行/機密ファイルの読取を達成し、Laravel アプリケーションをホストするサーバの、完全に制御を奪う可能性を手にする。この脆弱性を発見した Jeremy Angele に対して、Laravel は謝意を述べている。
この脆弱なコンポーネントは、”Laravel\Pulse\Livewire\Concerns\RemembersQueries” トレイト内の remember(callable $query, string $key = ”) メソッドである。したがって、このトレイトを使用する、すべての Pulse カード・コンポーネントに影響が生じる。
この脆弱性は、Livewire コンポーネントのインタラクションにより、トリガーされる可能性がある。エクスプロイトの簡単な例は、次のとおりである。
wire:click=”remember(‘\Illuminate\Support\Facades\Config::all’, ‘config’)”
この例は、remember メソッドを用いる攻撃者が、 Illuminate\Support\Facades\Config ファサードの all メソッドを呼び出し、機密性の高いコンフィグ情報を漏らす可能性を示している。ただし、その影響は、コンフィグ値の読み取りだけに留まらない。巧妙に作成されたペイロードを用いる攻撃者であれば、リモート・コード実行を完璧に達成するだろう。
Laravel Pulse のバージョン 1.3.1 未満が、この脆弱性の影響を受ける。すでに、パッチ適用バージョン 1.3.1 がリリースされているため、ただちにアップデートを行い、この問題を修正必要がある。
Laravel アプリケーションを監視する、Laravel Pulse の脆弱性が FIX しました。モニタリング・サービスに対しては、さまざまな特権が与えられますので、脆弱性があると大きな被害に繋がりかねません。ご利用のチームは、ご注意ください。よろしければ、Laravel で検索も、ご参照ください。
You must be logged in to post a comment.