ラボまとめコラムニュース
ブログ/記事一覧/【緊急】Laravel Livewireに致命的RCE、イラン国家ハッカーが悪用中
laravel-livewire-rce-iran-muddywater-cover

【緊急】Laravel Livewireに致命的RCE、イラン国家ハッカーが悪用中

CVSS 9.8のLaravel Livewire脆弱性(CVE-2025-54068)をイラン国家支援ハッカーMuddyWaterが悪用中。認証不要でサーバーを完全制御される。CISA修正期限は4月3日。影響範囲と対処法を解説

ニュース
kkm-horikawa

kkm

Backend Engineer / AWS / Django

2026.03.308 min3 views
この記事のポイント

CVSS 9.8のLaravel Livewire脆弱性(CVE-2025-54068)をイラン国家支援ハッカーMuddyWaterが悪用中。認証不要でサーバーを完全制御される。CISA修正期限は4月3日。影響範囲と対処法を解説

2025年7月に修正されたはずの脆弱性が、8ヶ月後の今、イランの国家ハッカーに使われています。 CVE-2025-54068。 CVSS 9.8。認証不要。サーバーを完全に乗っ取れます。

対象はLaravel Livewire v3。 Packagistのダウンロード数は7,500万件を超え、公開インスタンスは13万件以上。 もしあなたのLaravelアプリがLivewire v3を使っているなら、この記事を読んでからcomposerを開いてください。

Laravel Livewireに何が起きたのか

2025年7月17日、フランスのセキュリティ企業 Synacktiv がLaravel Livewire v3に致命的な脆弱性を発見しました。

項目内容
CVE番号CVE-2025-54068
CVSS9.8 / 10.0(Critical)
種別リモートコード実行(RCE)
認証不要(誰でも攻撃可能)
影響バージョンv3.0.0-beta.1 〜 v3.6.3
(v1/v2は影響なし)
修正バージョンv3.6.4(2025年7月リリース済み)
CISA修正期限2026年4月3日

問題は「修正された」タイミングです。パッチが出たのは2025年7月。 CISAがKEVカタログに追加したのは2026年3月20日。 この8ヶ月の空白期間に、イランの国家支援ハッカーグループ「MuddyWater」が悪用を始めました。

この脆弱性はどう動くのか

Livewire v3はブラウザとサーバー間でコンポーネントの状態を同期する「ハイドレーション」という仕組みを持っています。 ユーザーがボタンをクリックするたびに、コンポーネントの状態がJSONとしてサーバーに送られ、処理されて返ってくる。 この往復のたびに動く「シンセサイザー」というPHPオブジェクトの検証に穴がありました。

攻撃は2段階で成立します。

まず、Livewireのリクエストには updates というフィールドがあります。 通常、サーバーはリクエスト全体のチェックサムを検証しますが、updates の中にネストされた配列に「隠れたシンセサイザーのメタデータ」を埋め込むと、再帰的な処理の深いレベルでシンセサイザーが再定義・実行されます。 チェックサムはトップレベルしか見ていないため、ネストされた中身はすり抜けます。

次に、すり抜けたシンセサイザーが CollectionSynth を通じて任意のPHPクラスをインスタンス化します。 ここから GuzzleHttp\Psr7\FnStream__toString() メソッドと League\Flysystemarray_map を組み合わせた「ガジェットチェーン」が起動し、最終的にサーバー上で任意のコマンドが実行されます。

厄介なのは、通常の攻撃はHTTP 500エラーを出して検知されますが、Synacktivの研究者は Laravel\Prompts\Terminal::exit() でクリーンに終了するエラー隠蔽手法も確認しています。 ログに痕跡が残らない攻撃が可能です。

Filamentのログイン画面が特に危ない理由

FilamentはLaravelの管理パネルフレームワークで、Livewireの上に構築されています。 問題は、Filamentのログインパネルが public $form という「弱い型付け」のプロパティを持っていることです。

このプロパティは型が指定されていないため、攻撃者が送り込んだ任意のオブジェクトを受け入れてしまいます。 つまり、ログイン画面にアクセスするだけで攻撃が成立します。 認証の前に、認証画面そのものが突破口になるという構造です。

Filamentは管理パネルとして広く使われており、Packagistのダウンロード数から推定すると約1,800万のインストールが影響を受ける可能性があります。

MuddyWaterとは何者なのか

MuddyWater(別名: Seedworm、Mango Sandstorm)は、 イラン情報安全保障省(MOIS)の下部組織 とされる国家支援のハッカーグループです。 2017年から活動しており、中東・アジア・欧州・北米の政府機関、通信、防衛、エネルギー、金融セクターを標的にしてきました。

2026年の活動は2月初旬から始まっていましたが、2月28日の米・イスラエルによるイラン軍事攻撃を境に大幅に活性化しました。 確認された標的には米国の銀行、空港、ソフトウェア企業のイスラエル拠点が含まれます。

新型マルウェアも確認されています。 「Dindoor」というDenoランタイム上で動くバックドアと、Python製の「Fakeset」。 署名にはAmy CherneやDonald Gayという偽名の証明書が使われ、データの窃取先にはBackblaze B2クラウドストレージが利用されています。

CISAは KEVカタログへの追加文書 で、CVE-2025-54068を「MuddyWaterによる攻撃に関連」と明記しています。

なぜ8ヶ月もパッチが当たらなかったのか

修正版v3.6.4は2025年7月にリリースされています。 それから8ヶ月後の2026年3月に、まだ多くのインスタンスが脆弱な状態のままだった。 これは「パッチが出なかった」問題ではなく、「パッチが当たらなかった」問題です。

PHPエコシステム、特にLaravelのプロジェクトでは composer update を頻繁に実行しない運用が珍しくありません。 「動いているものは触らない」という文化があり、セキュリティパッチであっても、アップデートによる互換性の問題を恐れて放置されがちです。

加えて、この脆弱性はCVSSスコア9.8にもかかわらず、2025年7月の公開時には大きなニュースになりませんでした。 CISAがKEVに追加して初めて「これは今すぐ対処が必要だ」という認識が広がった形です。 PoCスキャナーがGitHubに公開されている以上、攻撃のハードルは極めて低い状態です。

自分のアプリは影響を受けるのか

以下の条件がすべて当てはまる場合、影響を受けます。

影響を受ける条件

  • 1. Livewire v3.0.0-beta.1 〜 v3.6.3 を使っている
  • 2. サーバーがインターネットに公開されている
  • 3. Livewireコンポーネントがマウントされて動作している

「Livewireは直接使っていない」という場合でも、Filament、Laravel Pulse、その他Livewire依存パッケージを間接的に使っている可能性があります。 依存パッケージ数は1,983件にのぼります。

確認方法はシンプルです。

# バージョン確認
composer show livewire/livewire

# 脆弱性スキャン
composer audit

composer show の出力が v3.6.3 以下なら影響を受けます。v1.x や v2.x は対象外です。

今すぐやるべきこと

修正は composer update livewire/livewire の1コマンドです。 ワークアラウンドはありません。アップグレード以外の緩和策は存在しないため、バージョンを上げるしかありません。

# 修正バージョンへの更新
composer update livewire/livewire

# 更新後の確認(v3.6.4以上であること)
composer show livewire/livewire

# 他の脆弱性も含めた全体スキャン
composer audit

アップデート後は、Filamentやその他Livewire依存パッケージのバージョンも確認してください。 Filamentを使っている場合は composer update filament/filament も実行し、Livewire v3.6.4以上を参照していることを確認します。

なお、APP_KEYが漏洩している環境では別の攻撃経路(亜種)が存在し、こちらはv3.6.4でも修正されていません。 LivewireはAPP_KEY漏洩を「アプリケーション側のセキュリティ境界」としてスコープ外としています。APP_KEYの管理にも注意が必要です。

今後どうなるのか

CISA修正期限は2026年4月3日です。 これは連邦民間行政機関(FCEB機関)に対する法的拘束力のある期限ですが、民間企業にとっても事実上の修正圧力になります。 「CISAが名指しした脆弱性を放置している」状態は、インシデント発生時に説明が困難です。

PoCスキャナーがGitHubに公開されている以上、MuddyWater以外の攻撃者も使い始めるのは時間の問題です。 修正パッチは8ヶ月前から存在します。あとは当てるだけです。

参照元