サイバー脅威インテリジェンス
PHPの脆弱性分析:CVE-2026-109618、CVE-2026-109619
✅ レポートタイトル:
PHPの脆弱性分析:CVE-2026-109618、CVE-2026-109619
✅ レポートの要約
📌 PHPとは?
- PHPは、Webアプリケーション開発に使用されるサーバーサイドスクリプト言語です。サーバー側でユーザーのリクエストを処理し、データベースと連携してWebページを生成するもので、オンラインショップやブログ、WordPressのようなコンテンツ管理システムに主に活用されています。
📌 脆弱性の概要
- 2026年10月20日、PHPのRemote Code Execution(リモートコード実行)脆弱性であるCVE-2026-109618およびCVE-2026-109619が公開されました。
- 本脆弱性は、以下に記載するバージョンの製品が影響を受けることが確認されています。
- PHP 8.5系 < 8.5.12
- PHP 8.4系 < 8.4.27
- PHP 8.3系 < 8.3.36
- PHP 8.2系 < 8.2.35
- PHP 8.1 / 8.0 / 7.4系(全バージョンが対象)
- PHP 5.4~7.3系(全バージョンが対象、攻撃経路により異なる)
- 2026年10月20日、両脆弱性はいずれもCVSS v4.0:9.2(Critical)と評価されており、対応策を確認し早急に対応することを推奨します。
📌 脆弱性の発生原因
- 本脆弱性は、PHPがメモリ不足や致命的なエラーによりリクエスト処理を異常終了させた際に、リクエストメモリが初期化されていない状態、あるいは既に解放された状態のまま残ることで発生するリモートコード実行(Remote Code Execution)の脆弱性です。
- CVE-2026-109618
- PHPはメモリ割り当てに失敗すると、zend_bailout()を通じて実行フローを異常終了させますが、この過程で一部のデータ構造の初期化が完了しない状態のまま残ることがあります。
- 攻撃者は、multipartリクエストを利用してmemory_limitに到達させることで、この状況を繰り返し発生させることができます。
- リクエスト終了処理では、初期化が完了していないデータ構造を走査しながらメモリを解放することがあります。この際、無効な項目を正常なデータとして処理すると、メモリ破損が発生する可能性があります。
- Apache mod_php環境では、リクエストの初期化に失敗した場合でも終了処理が実行されるため、アプリケーションコードが実行される前であっても脆弱性が発生する可能性があります。
- CVE-2026-109619
- PHPは、HTTPリクエスト処理の過程で、セッション、エラー処理、オブジェクトおよび拡張モジュールのグローバル状態に、リクエストごとのヒープメモリを参照するポインタを保存することがあります。
- メモリ不足(OOM)や致命的なエラーによりリクエストが中断されると、ポインタのクリア処理が省略され、リクエストメモリが解放された後もグローバル状態に無効なポインタが残ることがあります。
- その後、同じPHPワーカーが新たなHTTPリクエストを処理する際、正常な初期化が完了する前に当該グローバル状態を参照することで、Use-After-Freeが発生する可能性があります。
- 代表的な例として、Session Upload Progressの処理過程では、PS(id)またはPS(http_session_vars)が解放済みのメモリを参照した状態で呼び出され、メモリ破損や情報漏えいが発生する可能性があります。
- エラーバックトレース処理の過程では、EG(last_fatal_error_backtrace)が解放済みのメモリを参照した状態で呼び出され、メモリ破損が発生する可能性があります。この事例は、PHP 8.5においてfatal_error_backtraces設定が有効になっている場合に該当します。
✅ 脅威検知の推奨事項と対策方法:
- 脅威検知ルールを更新し、継続的なモニタリングを実施するとともに、ベンダーが提供するセキュリティアップデートを適用します。
- PHP 8.5系 ≥ 8.5.12
- PHP 8.4系 ≥ 8.4.27
- PHP 8.3系 ≥ 8.3.36
- PHP 8.2系 ≥ 8.2.35
- PHP 8.1 / 8.0 / 7.4バージョンには公式パッチリリースが提供されないため、PHPセキュリティチームが提供する最小限のソースバックポート(Backport)ブランチを利用して、手動でビルドのうえ適用する必要があります。
- PHP 5.4~7.3以下のEOL旧バージョンには公式の対応パッチが存在しません。 最新のPHPバージョンへのアップグレードを推奨します。
- 直ちにパッチを適用できない場合は、以下の対応策に従って対応することを推奨します。
- PHP Session Upload Progress機能を無効化:session.upload_progress.enabled = 0 を設定
- PHPスクリプトのメモリ上限を解除:memory_limit = -1 を設定
- 本対応は、OOM発生の可能性を低減するための暫定対応であり、脆弱性自体に対する根本的な緩和策ではありません。
- メモリ使用上限を上げる、または解除する場合はメモリ枯渇のリスクがあるため、運用環境を考慮して適切な制限値を適用することを推奨します。
- 脆弱なサービスのパッチ適用が完了するまで、PHPベースのインターネット公開サービスの外部公開を停止し、内部ネットワークまたはVPNなどを通じて、許可されたユーザーおよびネットワークからのみアクセスできるよう制限することを推奨します。
🧑💻 レポート作成者: S2W「TALON」 (2026-10-22)
👉 レポートに関するお問い合わせ: https://s2w.inc/ja/contact