
PHPの重大な脆弱性「PHP2Shell」(CVE-2026-109618/109619)の修正版が出てから、1週間がたちました。10月26日には、米国のCISAが、実際に悪用されている脆弱性として登録しています。それでも、更新が済んでいないPHPは、世界にまだ大量に残っています。
この記事は、「自分のサイトが大丈夫か分からない」という方向けに、更新がまだの数と、いま確認することを、順番にまとめたものです。技術的な詳細は、エンジニア向けのまとめにあります。数字は、日本時間10月28日夜の時点のものです。
日本語で出回っている情報には、原文と異なる訳や要約が、かなり見受けられます。この記事は、一次情報を私たちも原文で確認して書いていますが、読者の皆さんも、各社の原文でのご確認をお勧めします。
Censysは、インターネットに公開されているPHPを調べて、バージョンごとに、修正版かどうかを集計しています。10月28日の表示は、次のとおりです(Censys PHP2Shell Exposure Tracker。最新のデータは、UTC 14:10、日本時間23:10まで)。
| 区分 | 件数 | 意味 |
|---|---|---|
| 修正版になっている | 約1200万 | 8.2.35、8.3.36、8.4.27、8.5.12以上 |
| 未修正で、修正版がある | 約840万 | 8.2〜8.5で、修正版より前。更新すれば直る |
| 未修正で、公式の修正がない | 約2400万 | 8.1以前。移行が必要 |
| バージョンが分からない | 約6514万 | 全体の59%。判断できない |
「件」は、サービス(IPアドレスまたはホスト名と、ポートの組)の数です。組織の数でも、サーバーの台数でもありません。1台のサーバーで、複数のサイトが動いていることもあります。
バージョンが分かる約4500万件のうち、未修正のバージョンは73.3%(約3270万件)です。最も多いのはPHP 7.4.33で、約693万件(15.5%)あります。
修正版のある系列でも、更新は、半分前後です(Censys、10月28日)。
| 系列 | 修正版の件数 | 割合 |
|---|---|---|
| PHP 8.2(修正版 8.2.35) | 約312万 / 約598万 | 52.3% |
| PHP 8.3(修正版 8.3.36) | 約404万 / 約782万 | 51.7% |
| PHP 8.4(修正版 8.4.27) | 約215万 / 約322万 | 67.0% |
| PHP 8.5(修正版 8.5.12) | 約260万 / 約334万 | 77.9% |
直近24時間に、新たに修正版になったことが確認されたのは、約40万件です(Censys)。10月21日の公開から、修正版への移行が確認されたのは、約1061万件です。
細かい数字よりも、更新が済んでいないものが、世界にも日本にも、大量に残っている、という点を見てください。
10月23日までは、攻撃の「試行」の報告が中心で、成功を示す確かな報告は、確認できていませんでした。この状況は、変わっています。
囮のサーバーの結果は、1つの設定(Apacheのワーカー1つ、メモリ上限128MiB)での観測です。実際のサイトで、何件の被害が出ているかは、分かっていません。ただ、攻撃が実際に成功する状態になっているため、更新を後回しにする理由は、なくなりました。
イスラエルのセキュリティ会社Dreamは、PHP2Shellを使った攻撃で、ファイアウォールが侵害された、と報告しています。製品は、Palo AltoのPAN-OSです(報告は10月26日に公開、29日に更新。Dream)。JPCERT/CCも、10月29日に、この件を注意喚起に追記しました(JPCERT/CC)。Palo Alto自身も、同じ10月29日に、Unit 42の脅威情報を更新し、PHP2Shellは「インターネットに公開された管理画面に対して悪用されている」と書きました。Dreamが報告した攻撃者の道具を、独自に確認し、結果を裏付けた、としています(Unit 42)。
Dreamの報告は、報告者による調査です。攻撃者の名指しはなく、AD側の結果は、回収できていない、と注記されています。一方、Palo Altoは、インターネットに公開された管理画面があり、影響を受けた機器は、導入台数の約0.02%で、該当のお客様には個別に連絡した、と説明しています。管理画面は、初期設定では公開されません(Unit 42。数字はPalo Altoの説明で、独立した検証はありません)。報道と一次情報で合っていない点は、別の記事にまとめました。この記事の読者に関係するのは、次の点です。
PHPの更新は、次のどれかで、担当が変わります。
| 運用の形 | 更新するのは | やること |
|---|---|---|
| レンタルサーバー(さくら、エックスサーバー、ロリポップ!など) | 事業者 | 事業者は、10月23日までに、多くの修正を終えています。自分では、使っているPHPのバージョンを確認します。古いバージョンを選んでいると、対象外になることがあります |
| VPS、クラウド、自社のサーバー | 自分(または管理者) | 自分で、修正版へ更新して、PHPを再起動します |
| 制作会社、保守会社に任せている | 制作会社、保守会社 | 次の3つを質問します。(1)PHPのバージョンはいくつか、10月21日以降に更新したか。(2)8.1以前なら、いつまでに移行するのか。(3)10月17日以降の侵入の点検は、したか |
| ファイアウォールなどの機器 | 機器のベンダー | ベンダーの案内で、PHPの修正を含む更新が出ているかを確認します。管理画面を、インターネットに公開していないかも、見直します |
WordPressなどのCMSを更新しても、PHPが未修正なら、対処になりません。逆に、PHPを更新すれば、CMS側の修正は、この件では、必須ではありません(エンジニア向けのまとめ)。
| 使っているバージョン | 状態 | 次にやること |
|---|---|---|
| 8.2.35、8.3.36、8.4.27、8.5.12、またはそれ以上 | 修正済み | 手順5の点検へ |
| 8.2〜8.5で、上の番号より前 | 未修正で、修正版がある | 修正版へ更新して、PHPを再起動する |
| 8.1以前(8.0、7.4、7.2、5.6など) | 公式の修正がない | サポート中の8.2以降へ移行する。移行までは、手順4へ |
| 表示は上の番号より前だが、事業者が「修正済み」と案内している | 修正だけが取り込まれている可能性 | 事業者の告知で、そのバージョンが対象かを確認する |
PHP 8.2は、2026年12月31日に、サポートが終わります(PHP公式の告知)。更新のついでに、移行の計画も立ててください。
古いバージョンから移行する場合は、サイトやシステムが、新しいPHPで動くかの確認が要ります。いきなり本番で切り替えず、テスト環境で確認してください。
次のどれも、安全にはなりません。更新までの時間稼ぎです。
session.upload_progress.enabledの無効化など。設定は、エンジニア向けのまとめにあります)修正版を入れても、公開前や更新までの間に侵入されていれば、侵入は、残ります。攻撃は、修正版の公開の4日前から、始まっていました。
保守会社や管理者に、次の点検を依頼してください。
curl、wgetなどを起動した記録がないか疑わしい場合は、そのサーバーを隔離して、PHPから見えるパスワード(データベース、APIキーなど)を、すべて入れ替えます。詳しい確認項目は、エンジニア向けのまとめにあります。
自分のPHPの環境の洗い出しや、更新、侵入の点検でお困りの方は、下記よりお問い合わせください。
ただいま、セキュリティについての無料相談を受け付けています。「自社のサイトは大丈夫か」「何から確認すればよいか」など、お気軽にご相談ください。
