php2shellとは何か、パッチ公開前に分かっているCVSS9.2の2件と管理者が今夜までにやるべき準備
この記事のポイント
- php2shellとは何か
- PHP公式が予告したCVSS9.2の2件の重大な脆弱性について、公式が示した事実と未確定の点を分け、23時の修正版公開までに管理者が備えることを整理する
目次
2026年10月20日、PHPのセキュリティチームが2件の重大な脆弱性の修正版を、21日23時(日本時間)に公開すると予告した。どちらも深刻度はCVSS v4.0で9.2とされている。21日午前にはGMO Flatt Securityが「php2shell」の名で速報を出した。
php2shellとは何か。公開前の今、何が分かっていて、サーバー管理者は何をすればよいのか。
- PHP公式は2件の重大な脆弱性を予告し、どちらもCVSS v4.0で9.2と示した
- 修正版の公開予定は10月21日14時(UTC)、日本時間の同日23時である
- 公式の予告にはCVE番号・影響バージョン・攻撃手法が書かれていない
- 「php2shell」の名とCVE番号は、公式ではなく研究者の投稿や報道に由来する
- 暫定策としてsession.upload_progress.enabled=0が挙がるが、効果は断言されていない
php2shellとは何か、名前の出どころ
php2shellは、PHPの脆弱性に付けられた通称である。PHP公式の用語ではない。GMO Flatt Securityのブログによると、発見に関わったとみられる研究者が自分の投稿でこの名を使った。ブログは、その投稿が情報公開の調整(エンバーゴ)を破るに近い情報量だったとも述べている。同社は、開示調整には関与していないと明記している。
つまり、名前が先に広まり、公式の詳細があとから追いかける順番になっている。公式が確認済みの事実と、研究者や報道が伝える見立ては、分けて読む必要がある。次の章では、まず公式が実際に何を書いたのかを確かめる。
公式が示した事実と、示していない事実
php.netには10月20日付で「Upcoming Critical PHP Security Release」という告知が載っている。内容は短い。2026年10月21日(水)14:00 UTCにセキュリティリリースを出すこと、2件の重大な脆弱性を直すこと、どちらもCVSS v4.0で9.2であることが書かれている。
公式は、すべてのPHP利用者に今のうちに準備するよう求めた。また、詳細が先に公開された場合や、実際の悪用が確認された場合は、予定より早く出す権利を留保するとも書いている。修正版が早まる可能性があるため、23時を待つ前提で動くのは危うい。
一方で、告知には次の点がない。CVE番号、影響を受けるバージョン、脆弱性の種類、攻撃の経路である。これらは「リリース時に公開する」とされている。ASCII.jpも、公式の告知からはこれらが読み取れないと伝えている。
ここまでが確定した部分である。ではCVE番号や「リモートコード実行(RCE)」という話は、どこから来たのか。
CVE番号とRCEの話は何に基づくか
CVE-2026-109618とCVE-2026-109619という番号は、公式告知には出てこない。Flatt Securityのブログはこの2件を挙げ、CVSS v4.0で9.2、外部から任意のコードを実行される可能性があると紹介している。セキュリティ対策Labは、これらの番号をセキュリティ企業watchTowrが挙げた識別子と伝えている。
報道には食い違いも残る。同サイトによれば、一部の外部報告にはCVSS 10.0とする記述があるが、これは公式の値ではない。公式が示したのは9.2である。
Flatt Securityのブログは、研究者の投稿ではメモリ破壊系のバグとされ、mod_phpやphp-fpmのほか、WordPress、Laravel、Symfonyといった構成で攻撃が再現すると書かれていたと紹介している。ただしブログ自身が、これらは一部の例にすぎず、他にも影響がありうると述べている。公式の影響範囲は出ていないため、自分の環境が対象外だと決めつけない方がよい。
ブログは、Session Upload Progress機能(ext/session関連)が関わる可能性が高いとも見ている。ただしこれは同社の見立てで、確定情報ではない。速報性を優先した記事であり、不正確な内容を含みうると同社自身が断っている。
修正版の公開前にやる6つの準備
Flatt Securityのブログと、セキュリティ対策Labの整理から、公開前にできる準備をまとめる。順番は、洗い出しから始めて検証、監視と進めるとよい。
1つ目は、PHPを使うシステムの洗い出しである。公開Webサーバー、WordPressなどのCMS、業務システム、API、バッチ、コンテナが対象になる。CLI版とPHP-FPMでバージョンが違うことがあるため、実際にWebを受ける側を確認する。
2つ目は、更新の経路と担当の確認である。OSのパッケージ、コンテナイメージ、レンタルサーバー、ベンダー配布物では、誰がいつ更新するかが違う。ASCII.jpによると、公式のサポートは現在8.2から8.5系までで、8.1以前は修正版が出ない見通しだ。古い系統を使っている場合は、移行計画も要る。
3つ目は、更新後の動作確認の手順づくりである。ログイン、決済、予約、外部API連携など、止まると困る機能の確認項目を前もって決めておく。バックアップと戻す手段も用意する。
4つ目は、緩和策の手順の確認である。Flatt Securityのブログは、session.upload_progress.enabled=0でSession Upload Progressを無効にする設定を挙げている。この機能は、ファイルアップロードの進捗をセッションに記録するものだ。進捗バーに使うサイトでは、無効にすると表示が動かなくなる。ブログは、この設定が今回の問題に確実に効くとは断言できないとしている。つまり、これはパッチの代わりではなく、パッチを当てられない場合に備えた手順の確認にとどまる。
5つ目は、サーバーが持つ情報と権限を減らすことである。サーバー内のデータを最小限にし、IAMロールやサービスアカウントの権限も絞る。万一コードを実行されても、被害の範囲を狭められる。
6つ目は、ログの確認と保全である。アクセスログとPHPのエラーログが残っているか、保存期間は十分かを見ておく。固有の侵害の痕跡は、公式の技術情報が出てから照合する。
なお、WordPressやプラグインを更新しても、PHP本体の脆弱性は直らない。本体のバージョンを上げる作業が別に必要になる。
公開前後のタイムラインと確認すること
日付を並べると、状況が整理しやすい。
- 10月20日: PHPチームが2件の重大な脆弱性の修正版を予告する
- 10月21日11時12分: Flatt Securityがphp2shellの速報ブログを公開する
- 10月21日23時(日本時間): 修正版の公開予定。早まる可能性がある
公開後は、公式のアドバイザリで次の3点を照らし合わせる。CVEごとの影響バージョン、攻撃に必要な条件、修正版の番号である。ここで初めて、Session Upload Progressの見立てや、フレームワーク別の話が正しかったかどうかが分かる。Flatt Securityも、修正パッチの公開後に記事を更新する予定としている。
攻撃者はパッチの差分から脆弱性を読み解くことがある。そのため、公開から適用までの時間が短いほど安全になる。準備の目的は、公開された瞬間に迷わず動ける状態をつくることである。
php2shellのよくある疑問
Q. php2shellはPHP公式の名称なのか。
公式の名称ではない。研究者が投稿で使った通称で、Flatt Securityのブログがそれを紹介している。公式の告知は「重大な脆弱性2件」としか書いていない。検索や社内共有では、公式の告知とCVE番号を併記すると混乱を避けられる。
Q. すでに攻撃されているのか。
公式の告知は、実際の悪用が確認された場合は前倒しで公開する可能性を示しているだけで、悪用の確認は書いていない。ASCII.jpの記事にも悪用状況の記載はない。確認できる範囲では、悪用の事実は示されていない。
Q. どのPHPのバージョンが危ないのか。
公式はまだ示していない。ASCII.jpは、修正が見込まれるのは8.2から8.5系だと伝えている。一方、研究者の中にはPHP 5以降に広く及ぶと見る人もいるという。8.1以前を使う場合は、修正版が出ない前提で移行を考えた方がよい。
Q. session.upload_progress.enabled=0にすれば安全か。
安全とは言い切れない。Flatt Securityのブログも、効果を断言できないとしている。設定の変更にはPHPの再読み込みが要り、進捗バーを使う機能に影響も出る。パッチを当てるまでのつなぎとして、影響の確認手順を持っておく位置づけである。
Q. WordPressを使っているだけでも対象になるのか。
WordPressはPHPの上で動くため、PHP本体に問題があれば影響を受けうる。ただし公式は影響範囲を出していない。WordPress側の更新では直らず、サーバーのPHPを更新する必要がある。レンタルサーバーなら、事業者の対応予定を確認する。
Q. 公開後、いつまでに更新すべきか。
できるだけ早い方がよい。攻撃者がパッチの差分から手口を探ることがあるためだ。事前に確認項目を決めておけば、公開から数時間で適用できる。
確定した事実だけで備えることが最善手
php2shellの正体は、公式が予告した2件の重大な脆弱性に、研究者の投稿が付けた通称である。確定しているのは、CVSS v4.0で9.2、日本時間10月21日23時に修正版を出す予定、という2点だけだ。CVE番号、RCEの可能性、Session Upload Progressの関与は、報道や研究者の見立てで、公式の確認を待つ段階にある。
だからこそ、管理者が今できることは決まっている。PHPの洗い出し、更新と動作確認の手順づくり、ログの保全、権限の最小化である。詳細が出た瞬間にその情報へ切り替えられるよう、この準備を先に済ませたい。
なぜ流行っているのか?
php2shellの話題が急速に広がった背景には、3つの要因がある。1つ目はタイミングである。PHP公式が10月20日に修正版の予告を出し、翌21日午前に研究者の通称と速報ブログが出たため、公式の詳細より先に名前とCVE番号が広がった。2つ目は影響の広さへの懸念である。PHPはWordPressやLaravelなど多くのWebサイトの土台で、CVSS 9.2の2件という予告だけで管理者の不安が高まった。3つ目は、修正版の公開時刻が日本時間の夜23時と明示されたことだ。待つ時間が可視化され、準備の話題が日中から広がった。
この記事の根拠
一次ソース 1件エビデンス 2件参考資料 1件
ファクトチェック結果を確認する
php.netの10月20日付告知で、2件の重大な脆弱性、CVSS v4.0で9.2、21日14:00 UTC(日本時間23時)の公開予定、前倒しの留保を確認した。CVE番号・影響バージョン・攻撃手法は公式告知に記載がない。CVE-2026-109618/109619はGMO Flatt Securityのブログとセキュリティ対策Labの報道で確認し、後者はwatchTowrが挙げた識別子と伝える。RCEの可能性、Session Upload Progressの関与、緩和策の効果は同社ブログの見立てで、断定されていない。研究者の投稿に由来する再現の話は公式未確認のため、確認済みの事実としては扱わない。