ニュース

PHPに認証不要のRCE「PHP2Shell」 8.5.12など修正版へ即時更新を

PHP本体に、認証なしで遠隔からコードを実行できる脆弱性2件(CVSS 9.2)が見つかり、10月21日に8.5.12/8.4.27/8.3.36/8.2.35で修正されました。発見にはOpenAIのGPT-5.6 Solが使われ、公開前に詳細が漏れて攻撃の試みも出ています。

PHPの開発チームは2026年10月21日(協定世界時)、PHP本体に見つかった2件の重大な脆弱性を修正したセキュリティリリースを公開しました。通称「PHP2Shell」と呼ばれ、どちらも認証なしで遠隔からコードを実行できる(RCE)おそれがあり、深刻度はCVSS v4.0で9.2です。WordPressやDrupalなどアプリの種類を問わず、Webリクエストを処理するPHPはほぼすべて対象です。PHPで動くサイトを運用している人は、今日中に修正版への更新を確認してください。

何が見つかったのか

対象はCVE-2026-109618とCVE-2026-109619の2件です。PHPの公式アドバイザリによると、1件目はメモリ不足(OOM)の処理が、リクエストのデータを初期化している途中でPHPを中断させてしまう問題、2件目はリクエストごとに持つはずの内部状態がメモリ解放後も残り、同じワーカーが処理する次のリクエストで使われてしまう問題です。

発見者のひとつであるWiz Researchの技術解説によれば、原因はPHPがエラー、特にメモリ不足でリクエストを異常終了したときの後始末にあります。WizはこれらをまとめたPoC(検証用の攻撃コード)で、検証時点で最新のWordPress、Drupal、Joomlaのコンテナに対し、認証なしでのコード実行を確かめたとしています。さらに、PHPのワーカーのメモリからパスワードやトークン、APIキーを読み出せる情報漏えいも示しました。アプリがsession_start()を呼んでいなくても成立し、「Hello World」を返すだけのアプリでも影響を受けうると書いています。

影響範囲が広い理由もここにあります。問題はアプリやプラグインではなくPHPの実行環境そのものにあるため、WordPress本体やプラグインを最新にしていても防げません。Wizは過去10年に出たすべてのバージョンに少なくとも1件が当てはまり、PHP 5.4までさかのぼると述べています。

PHP2Shellの要点
出典: PHP公式アドバイザリ、Wiz Research(いずれも2026年10月21日)

AIが先に見つけ、公開前に漏れた

今回の経緯で目を引くのは、発見にAIが使われたことです。OpenAIは同日、「Patch the Planet」と名付けた取り組みの一環として、セキュリティ企業のCalifがGPT-5.6 Solを使って重大な欠陥を特定したと発表しました。Wizも2件を独自に発見・報告しています。OpenAIは「最近の記憶の中で最も影響の大きいセキュリティ問題の一つ(one of the most impactful security issues in recent memory)」と表現し、攻撃者より先にAIが見つけたことで、修正と防御を準備する時間が取れたと説明しています。

Wizの時系列では、最初の発見が8月19日、PHPのセキュリティチームへの報告が8月24日、修正版の公開が10月21日です。この間にOpenAIはWiz、Cloudflareなどと修正やWAF(Webアプリケーションファイアウォール)ルールの事前準備を調整し、米国政府機関とも連携したとしています。

ただし、計画どおりには進みませんでした。PHPは10月20日に「21日14時(UTC)に重大な修正を出す」と予告しましたが、SecurityWeekの報道によると、公開前に脆弱性の詳細がネット上に出回り、修正版の公開前から攻撃の試みが観測されています。試みが成功したかどうかは報じられていません。Wizは、最先端のAIモデルによって、欠陥から攻撃コードを作る難しさが大きく下がったとも指摘しています。

日本の運用者がやるべきこと

日本でもWordPressやEC-CUBE、自社開発のPHPアプリは広く使われており、レンタルサーバーで運用する中小企業や個人も対象になりえます。サーバーを自分で管理していなくても、事業者がPHPを更新済みかの確認が必要です。

今日中に確認する手順
出典: PHP公式アドバイザリ、Cloudflare Blog(2026年10月21日)をもとに編集部作成

PHPのアドバイザリは、すぐに更新できない場合の一時的な緩和策として、memory_limit=-1の設定、post_max_sizeを小さくする、session.upload_progress.enabledを無効にする、といった方法を挙げています。ただし「露出を減らすが安全にはならない」と明記しており、更新が唯一の完全な対策です。Cloudflareは既知の攻撃パターンを防ぐWAFルールを公開し、無料プランでは設定不要で有効、有料プランではマネージドルールがブロックモードになっているか確認するよう呼びかけています。ただし、これも修正の代わりにはならないとしています。

侵害の兆候として、Wizは「マルチパートのリクエストの直後にメモリ上限エラーが出る」「HTTP 500が繰り返される」「異常に大きいか形の崩れたPHPSESSIDのCookie」「原因不明のワーカーの再起動」を挙げています。メモリから秘密情報が漏れる性質上、更新前に攻撃を受けた可能性があるサーバーでは、データベースのパスワードやAPIキーの再発行も検討したほうがよいと考えられます。

AIが脆弱性を見つける時代の前提

当サイトでは、Claude Mythosが見つけた欠陥が詳細公開の翌日に悪用された件(関連記事)や、AnthropicのOSS向け定期スキャン(関連記事)を取り上げてきました。今回はそれが、世界中のWebサーバーの土台であるPHPで起きた形です。OpenAIは同様の発見が今後数カ月で急増すると見込んでいます。発見から公開までに約2カ月の準備期間があっても情報は漏れうるため、運用側は「修正版が出たら数時間以内に当てる」体制を前提に考える必要がありそうです。

まずは次の3つを進めてください。

  • 管理しているすべてのサーバーとコンテナイメージのPHPバージョンを洗い出し、修正版に更新する
  • 共用サーバーやPaaSを使っているサイトは、事業者の告知で更新済みかを確認する
  • 更新前の期間に不審なログがあれば、DBパスワードやAPIキーなど秘密情報を再発行する

出典

関連記事

ニュースの記事 →