ニュースマクロPHP、Webサーバーを脅かす重大な「PHP2Shell」脆弱性の緊急修正をリリース

PHP、Webサーバーを脅かす重大な「PHP2Shell」脆弱性の緊急修正をリリース

著者: TechNext24·

重要ポイント

  • •CVE-2026-109618およびCVE-2026-109619と呼ばれる2つの脆弱性(総称PHP2Shell)はCVSSスコア10点満点中9.2を付けられており、WordPress、Drupal、JoomlaなどのアプリケーションではなくPHP自体に存在する。
  • •WizはWordPressおよびDrupalサイトでログイン前にコードを実行する攻撃を実証しており、一方の脆弱性は実行中のPHPプロセスのメモリも漏洩させる可能性があり、攻撃にアカウントは不要である。
  • •脆弱性はPHP 5.4までのバージョンに影響し、修正版はPHP 8.5.12、8.4.27、8.3.36、8.2.35である。
  • •技術情報は公表予定の1日前に漏洩し、PHPは10月21日に修正を前倒しで公開した。Cloudflareはすでに初期の悪用の試みを確認している。
  • •WordPress、Drupal、Joomlaやプラグインの更新では脆弱性は修正されず、PHPは完全な緩和策は存在せずパッチ適用済みのPHPバージョンのインストールが唯一の安全な選択肢であるとしている。
PHP、Webサーバーを脅かす重大な「PHP2Shell」脆弱性の緊急修正をリリース

PHPは、ログインなしでWebサーバー上に悪意あるコードを実行される恐れのある2つの重大な脆弱性に対する緊急セキュリティ更新をリリースした。

これらの脆弱性はCVE-2026-109618およびCVE-2026-109619として追跡されており、総称してPHP2Shellと呼ばれている。影響を受けるのはPHP自体であり、WordPress、Drupal、Joomlaなどのウェブサイトやアプリケーションの基盤となるプログラミング言語である。Common Vulnerability Scoring System(CVSS)でそれぞれ10点満点中9.2のスコアを付けられており、いずれも重大(クリティカル)レベルに分類される。

PHP2Shellとは何か

PHPはWebサーバー上で動作し、訪問者のリクエストの処理、データベースからの情報取得、フォームの処理、ページの構築を担う。セキュリティ企業Qualysによると、PHP2Shellはこの言語のメモリ処理とWebリクエストの状態処理に関する2つのバグである。脆弱性はPHP自体に存在し、WordPress、Drupal、Joomlaにあるのではない。

WordPressはXへの投稿で、この脆弱性はPHPアプリケーションをホストするすべてのサーバーに影響し、WordPressのアップデートは不要であり計画されていないと述べた。サーバー上のすべてのアプリケーションが同一のランタイムに依存するため、PHPを1つ修正すればすべてのアプリケーションの隙間が塞がれる一方、修正されていないランタイムが1つでも残っていれば、アプリケーションやプラグインがどれだけ最新であってもすべてが危険にさらされる。\n最初の脆弱性CVE-2026-109618は、リクエスト処理の途中でPHPがメモリを使い果たし、データが不完全に初期化されたまま残るときに発生する。2つ目の脆弱性CVE-2026-109619は、背後のメモリが解放された後もPHPがリクエストデータを参照し続けることで発生する。

これらのバグを報告した企業の一つであるWizは、WordPressおよびDrupalサイトでログイン前にコードを実行する攻撃を実証したと述べた。同社はさらに、一方の脆弱性により実行中のPHPプロセスのメモリが漏洩する可能性もあると付け加えている。攻撃にアカウントは不要で、その後の展開はサーバーの設定と、侵害されたPHPプロセスが持つ権限に依存する。

影響を受ける環境は?

PHPは発表の中で、Webリクエストを処理するすべてのインストール環境が危険にさらされるとしており、これにはPHP-FPM、mod_php対応のApache、php-cgi、FrankenPHP、LiteSpeedが含まれる。プロジェクトは、リスクが最も高いのはApacheのmod_phpであると述べ、実証されたエクスプロイトでは、アプリケーションコードが実行される前に認証されていないリクエストが攻撃をトリガーできる—つまり、トリガーはホストされているサイト自身のコードの弱点に依存しない—と説明している。\nWizによると、影響を受けるバージョンはPHP 5.4まで遡り、長期間運用されてきたレガシーサーバーも含まれる。修正版はPHP 8.5.12、8.4.27、8.3.36、8.2.35である。PHP 8.1以前はプロジェクトからの更新を受けておらず、ソースからビルドする場合やベンダーサポートがない場合向けに、PHPは7.4、8.0、8.1に対する最小限のソースバックポートを提供している。

PHPはまた、8.2は年末にセキュリティ修正の提供が終了するため、当該ブランチのユーザーはアップグレードを計画すべきだとしている。一部のLinuxディストリビューションやベンダーは旧バージョンに修正をバックポートする可能性があり、管理者はアドバイザリを確認し、存在しない場合はサポート対象バージョンへの移行を計画すべきである。独自のPHPをバンドルする製品、コンテナ、ホスティングパネルは個別更新が必要となる。

セキュリティ企業Huntressによると、脆弱性の技術情報は公表予定の1日前にオンラインに漏洩した。PHPはリリースを前倒しし、10月21日に修正を公開した。

セキュリティ企業のSansecは、パッチや技術的な解説が公開されたことで大規模な悪用が期待されると述べた。同社は、Cloudflareがすでに初期の攻撃を確認していると指摘している。技術詳細が公開され攻撃がすでに記録されている状況下で、まだ更新していないサーバーへの悪用の試みは、防御者が注視すべき喫緊の課題である。

対応方法

WordPress、Drupal、Joomlaまたはプラグインの更新では、PHP自体の脆弱性は修正されない。管理者は以下の措置を講じることができる:

PHPを更新する。 パッケージマネージャー経由で修正済みバージョンをインストールし、Webサーバーがそれを使用していることを確認する。WordPressユーザーは ツール > サイトヘルス > 情報 > サーバー でバージョンを確認でき、多くのホスティング業者もコントロールパネルで表示している。

すべてのインストールを確認する。 コンテナ、コントロールパネル、独自のPHPをバンドルするすべてのアプリケーションを確認する。

ホスティング業者に問い合わせる。 共有ホスティングでは、PHPは運用者の管理外である場合がある。プロバイダーがパッチを適用したかどうかを確認し、適用済みだと決め込まないこと。WordPressは、ホスティング業者がすでにパッチ適用やファイアウォールルールの追加を進めている可能性があるとしつつ、業者への確認を推奨している。

リポジトリに注意する。 Sansecは、PHPサーバーで広く使われるRemiのリポジトリにはリリース日に修正が含まれていなかったと警告し、ディストリビューションのパッケージを使用するかソースからビルドすることを推奨している。

緩和策は応急措置としてのみ使用する。 PHPは、完全な緩和策は存在せず、更新が唯一の安全な選択肢であるとしているリクエストサイズの上限設定やアップロード追跡の無効化などの措置では、インストールを安全にすることはできない。

侵害の有無を確認する。 PHPによって起動された予期しないプロセス、見慣れないファイル、不審な外部接続を探すこと。パッチを適用しても、すでに仕掛けられたマルウェアは除去されない。

脆弱性はスマートフォンやラップトップではなくサーバー上に存在するため、一般の訪問者が対処することはできない。すべてのPHPウェブサイトがハッキングされたわけではないが、修正済みバージョンへの更新が唯一の完全な解決策である。