Trail of Bits、PHP2Shellエクスプロイトが「実運用レベル」に到達と発表 標準設定のmod_php・PHP-FPMでroot取得
Trail of BitsのDan Guido CEOは、同社の非公開PHP2Shellエクスプロイトが、ASLR有効の標準的な本番PHP設定(Apache mod_php/nginx PHP-FPM)で動作すると述べました。公開エクスプロイトの信頼性は依然低いものの、未パッチのサーバーは攻撃可能とみなすべきです。
セキュリティ企業 Trail of Bits は、PHP2Shell(CVE-2026-109618、CVE-2026-109619)に対する同社の非公開エクスプロイトが「実運用レベル(production-grade)」に達したと述べています。10月21日のパッチ公開以降、多くの管理者が拠り所にしてきた「標準的な対策を施した実サーバーは攻撃が難しい」という見方を覆す内容です。
Trail of Bitsの主張
Mallory がまとめている経過情報によると、Trail of BitsのDan Guido CEOは10月24日(UTC)、このエクスプロイトが次の条件で動作すると述べました。
- 標準の
php.ini-production設定およびdisplay_errors=off - 通常のメモリ上限、複数ワーカー、ASLR有効、負荷がかかった状態
- x86-64 と ARM64 の両アーキテクチャ
- Apache + mod_php と nginx + PHP-FPM の両構成
- MediaWiki、WordPress、phpBB、Laravel などのアプリケーション
Guido氏によれば、最終的にroot権限に到達します。その2日前の10月22日には、改変していないMediaWikiでシェルを取得したと報告していました。Trail of Bitsはエクスプロイトを公開していません。
非公開エクスプロイトは他にも
VulnCheckは、10月22日までにCVE-2026-109618の実用的なエクスプロイトを完成させたとしています。別のメモリリークと組み合わせることで、ASLR有効・display_errors=off の環境でコード実行に至ります。10月23日時点で、mod_php上のPHP 8.4.10〜8.4.26および8.5.10〜8.5.11(AMD64/ARM64、デフォルト設定、WordPress公式Dockerの既定構成を含む)に対応しています。VulnCheckは顧客にのみ提供しています。
公開エクスプロイトが実際より弱く見える理由
SANS ISCは、信頼性のあるエクスプロイトは公開されていないとしています。公開PoCの多くは、実サーバーで一般的な128MBではなく8MBのメモリ上限を前提にしていたり、対象サーバーからメモリアドレスを読み取る必要があったり、ASLRを無効にした環境でしか動かなかったりします。Sansecも、公開エクスプロイトはPHPのデフォルト設定では失敗すると述べています。
ただし、これは公開されたコードに限った話です。Trail of BitsとVulnCheckの非公開の成果は、高度な攻撃者であれば安定した攻撃が可能であることを示しています。また TechCrunchの報道 によると、Palo Alto NetworksとTrail of Bitsは、侵害後の活動を伴う確認済みの被害事例を挙げています。
取るべき対応
- 今すぐパッチ適用: PHP 8.5.12、8.4.27、8.3.36、8.2.35、またはディストリビューション/ホスティング事業者のバックポート版パッケージに更新してください。
- 設定強化を代替策にしない:
display_errors=off、ASLR、適切なmemory_limitは良い習慣ですが、これらの非公開エクスプロイトへの防御にはなりません。 - セッションアップロード進捗も無効化: 別件のCVE-2026-115560は上記リリースでは修正されていないため、次の定期リリースまで
session.upload_progress.enabled=0を維持してください。 - 侵害の痕跡を調査: Amazonは、早ければ10月17日からの悪用の痕跡を確認するよう呼びかけています。
PHP 7.x、8.0、8.1をお使いの場合や、フレームワークのバージョンが原因でアップグレードできない場合は、RescuePHPがセキュリティパッチのバックポート、侵害調査、レガシーPHPアプリケーションの計画的なアップグレードをお手伝いします。