PHP、重大なリモートコード実行脆弱性に対する緊急セキュリティパッチをリリース
PHP 8.5.12、8.4.27、8.3.36、および8.2.35では、メモリ破損と古いグローバル状態を介して認証なしでリモートコード実行を可能にする2つの重大な脆弱性が修正されています。
英語の原文から自動翻訳されました。
PHPプロジェクトは、バージョン8.5.12、8.4.27、8.3.36、および8.2.35における2つの重大な脆弱性に対応するため、即時のセキュリティアップデートをリリースしました。これらの欠陥により、特定の条件下でPHPを実行しているサーバー上で、未認証の攻撃者が任意のコードを実行できるようになります。このリリースは、脆弱性識別子の早期漏洩によって部分的に妨げられた調整された開示プロセスに基づいています。
何が起きたか
更新されたリリースは、CVE-2026-109618とCVE-2026-109619をパッチ適用しており、両方とも深刻度が高いと評価されています。最初の脆弱性は、アウト・オブ・メモリー(OOM)破損によるリモートコード実行に関係しています。リクエストがPHPのメモリ制限に正確なタイミングで達した場合、エンジンが部分的に初期化された内部データをメモリに残す可能性があります。その後の操作はこのデータを有効なものとして扱うため、メモリ破損が発生します。mod_phpを使用するApache環境では、アプリケーションコードが実行される前に未認証のリクエストがこの状態を引き起こし、デフォルト設定のままでも完全なリモートコード実行が可能になります。研究者らはまた、アプリケーションレベルのコードを介したPHP-FPM経由のエクスプロイト経路も確認しました。
2番目の脆弱性は、古いグローバル状態の処理に起因しています。特定の時点での致命的エラーにより、前のリクエストから解放されたメモリを参照する内部ポインターが残る場合があります。同じワーカープロセスによって処理される subsequent リクエストがこの解放済みメモリにアクセスすると、use-after-freeエラー、ワーカークラッシュ、そして場合によってはリモートコード実行が発生します。これは、mod_phpを使用するApache上で動作する実際のアプリケーションに対して実証されました。両方の問題は、ほぼすべてのリクエストで触れられるコアコンポーネントに存在するため、パフォーマンスへの影響やサードパーティ拡張機能との互換性の破壊なく修正することが特に危険かつ困難です。
仕組み
これらの脆弱性は、PHPのメモリ管理とエラーハンドリングシステムの基本的な側面を悪用します。OOMシナリオでは、メモリ制限に達した際にエンジンが内部状態をクリーンにリセットできません。安全に停止する代わりに、後続の操作によって有効なデータとして誤解釈される破損した構造を残します。これにより、攻撃者は戦略的なポイントでメモリ枯渇を引き起こすことでメモリレイアウトを操作し、最終的に実行フローを制御できるようになります。
古いグローバル状態の問題は、同じワーカープロセス内で複数のリクエスト間でリソースをPHPがどのように管理するかから生じます。致命的エラーが発生すると、クリーンアップルーチンが以前に割り当てられたメモリへのポインターを完全に無効化しない場合があります。新しいリクエストがこれらの宙ぶらりんなポインターを再利用すると、無効なメモリ領域にアクセスします。攻撃者は、これらのエラーを引き起こす一連のリクエストを作成し、結果として生じるメモリ混乱を悪用して悪意のあるコードを注入・実行できます。これらのメカニズムはPHPの操作の中核にあるため、安全性、パフォーマンス、および下位互換性のバランスを慎重に考慮して修正する必要がありました。
主要な詳細
- 影響を受けるバージョン: PHP 8.5.12、8.4.27、8.3.36、および8.2.35には修正が含まれています。サポートされていない古いバージョンは依然として脆弱です。
- CVE-2026-109618: アウト・オブ・メモリー破損によるリモートコード実行。Apache/mod_php環境で認証なしでエクスプロイト可能です。
- CVE-2026-109619: 古いグローバル状態とuse-after-freeによるリモートコード実行。Apache/mod_php環境で確認されています。
- 開示の混乱: CVE IDが10月20日に漏洩し、リリーススケジュールが10月22日から10月21日へと前倒しされました。
- 研究貢献者: Calif、OpenAI、Wiz、およびTrail of Bitsが、責任ある開示チャネルを通じて脆弱性を特定・報告しました。
- 根本原因の歴史: OOM問題は2024年に最初に理論化されましたが、具体的なエクスプロイトベクトルがありませんでした。最近のAI支援研究により、攻撃パスが明確になりました。
なぜ重要なのか
PHPアプリケーションを維持しているチームにとって、これらの脆弱性は大きなリスクを表しています。なぜなら、認証なしでトリガーされ、コアエンジンの挙動に影響を与える可能性があるからです。デフォルトの設定でもエクスプロイトが可能であるという事実は、パッチ適用までの間、多くの本番環境が危険にさらされていることを意味します。修正の複雑さは、PHPのような長期にわたるプロジェクトに蓄積された技術的負債を浮き彫りにします。メモリ管理ロジックの変更は、数えきれないほどのサードパーティ拡張機能や既存のアプリケーションを破壊するリスクがあります。
このインシデントは、ソフトウェアセキュリティ研究の進化しつつある状況も強調しています。AI支援ツールは、これらの脆弱性の特定と検証において重要な役割を果たし、従来の手動監査と比較して発見プロセスを加速させました。しかし、同じ技術により、セキュリティチームがトリアージしなければならないレポートの量が増加しており、その多くは無効または重複した提出物です。PHP財団による専門的なセキュリティスタッフと自動化ツールへの最近の投資は、この流入を管理し、タイムリーなパッチを提供するために不可欠であり、オープンソースインフラストラクチャのセキュリティに対する持続的な資金調達の必要性を示しています。
あなたができること
- 現在のブランチに応じて、PHPインストールをバージョン8.5.12、8.4.27、8.3.36、または8.2.35に直ちに更新してください。
- デプロイパイプラインがパッケージマネージャーやディストリビューションリポジトリからこれらの更新されたバージョンを自動的に取得できることを確認してください。
- パッチ適用前の試みられたエクスプロイトを示唆する可能性のある、異常なメモリ枯渇イベントや致命的エラーについてサーバーログを確認してください。
- あなたの組織がPHPに依存している場合、PHP財団のスポンサーシップを検討してください。彼らの仕事はエコシステム全体のセキュリティと安定性を直接支えています。
- 最近の漏洩により公開概念実証(PoC)エクスプロイトの開発が加速した可能性があるため、公式PHPチャネルでさらなる勧告を監視してください。
- mod_phpとPHP-FPMの使用状況を評価してください。これらの構成間で攻撃ベクトルはわずかに異なりますが、両方とも影響を受けます。



