Laravel APP_KEY Flaw Exploited to Trigger Remote Code Execution on Hundreds of Apps
2025/07/11 gbhackers — Laravel アプリケーションに存在する深刻な脆弱性 CVE-2024-55555 を、セキュリティ研究者たちが発見した。この脆弱性を悪用する攻撃者は、公開状態にある APP_KEY 資格情報の欠陥を突き、数百の本番システムでのリモート・コード実行 (RCE) を可能にするという。この広範な影響が生じるというセキュリティ欠陥は、Laravel における復号されたデータが、自動的にデシリアライズされるという仕様に起因する。加えて、このフレームワークには、任意コマンドの実行を可能とする、多数のガジェット・チェーンが存在する。

APP_KEY は Laravel における 32 Byte 長の共通鍵であり、データの暗号化/セッション管理/パスワード・リセット・トークンなどの、クリティカルなセキュリティ機構の中核を成している。
この APP_KEY を入手した攻撃者が、decrypt() 関数を通じて復号を行う際に、この脆弱性が発生する。この関数は、復号化と同時に、デシリアライズを自動的に実行する。それにより、適切な検証が行われない状態のPHP オブジェクトが、読み込まれるという危険が生じる。
Laravel 環境における、PHP のデシリアライズに関する既知の脆弱性は、これらのガジェットチェーンにより任意コードの実行を可能とする。
脆弱性の詳細
| CVE ID | Affected Software | Impact | Description |
| CVE-2024-55555 | Invoice Ninja | RCE | Remote code execution via APP_KEY compromise |
phpggc (PHP Generic Gadget Chains) などのツールで判明しているものには、Laravel バージョン 5.1 〜 11.34.2+ に影響を及ぼす 20 種類以上の RCE ベクターがある。したがって、APP_KEY を取得した攻撃者にとって、この脆弱性の悪用は容易となる。
Synacktiv のセキュリティ研究者は、GitGuardian と協力することで、この脆弱性の影響範囲に関する広範な予備調査を実施した。

GreHack 2024 における Laravel 暗号化に関する調査では、Shodan を利用する検索により、Laravel インスタンス約 65 万件が特定された。また、GitHub 上のリポジトリに対する予備活動を通じて、多数の公開 APP_KEY が体系的に収集された。
この研究チームは、6,000 件超の APP_KEY を検証し、そのうちの 400 件を超える Laravel アプリケーションが、RCE 攻撃に対して依然として脆弱であることを確認した。独自に開発された “Laravel crypto killer” ツールを用いて、セッション Cookie の復号と、PHP オブジェクトの検証を実施した結果として、攻撃の実証にも成功している。
それに加えて、開発者たちのセキュリティ慣行に、重大な課題が存在することも浮き彫りとなった。2018 年以降において、GitHub 上には APP_KEY と APP_URL のペアが約 28,000 件も公開されており、そのうち 10% 程度が現在も有効であるという。現時点において、120 件のアプリケーションが、即時性の高い RCE 攻撃にさらされている。
APP_KEY の流出の約 63% では、 “.env” コンフィグ・ファイルが発端となっている。これらのファイルに含まれるものとしては、データベース認証情報/クラウド・ストレージ・トークン/決済関連のキーといった機密情報があるという。
自社のセキュリティ・プラットフォームに検出機能を組み込んだ GitGuardian が、2025年6月以降において GitHub 上で検出したものには、10,000 件を超える一意の APP_KEY がある。
APP_KEY と APP_URL を取り込む 1,300 件のインスタンスのうち、約 400 件が有効であるとされ、その中の4件では、本番環境での RCE 悪用が確認されているという。言うまでもなく、APP_KEY の露出は、組織のインフラストラクチャに対して、即時性の高い深刻なセキュリティ・リスクをもたらす。
この研究結果が浮き彫りにするのは、Laravel アプリケーションにおける、秘密情報の適切な管理と継続的な監視体制の重要性である。
Laravel アプリケーションで発見された脆弱性が明らかにするのは、コンフィグ・ファイルに取り込まれる秘密鍵 (APP_KEY) という、深刻な問題です。それが漏れると、攻撃者にコード実行を許す可能性が生じると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、Laravel で検索も、ご参照ください。
You must be logged in to post a comment.