PHP本体に、ログイン不要で外部からプログラムを実行される恐れがある緊急の脆弱性が見つかりました。対策はPHPを修正版(8.2.35/8.3.36/8.4.27/8.5.12以降)に更新することです。レンタルサーバーなら事業者の対応状況を、自社サーバーならPHPの更新を、今すぐ確認してください。
※本記事は2026年10月27日時点の公開情報をもとにしています。最新情報は記事末尾の参考情報(IPA・JPCERT/CC・PHP公式)をご確認ください。
何が起きたのですか?
2026年10月21日、PHPの開発元が「緊急」の修正版を公開しました。2つの脆弱性(CVE-2026-109618とCVE-2026-109619)を悪用されると、ログインしていない第三者が、細工した通信を送るだけでサーバー上で任意のプログラムを実行できる恐れがあります。
この2つの脆弱性は、まとめて「PHP2Shell(ピーエイチピー・トゥー・シェル)」と呼ばれています。「シェル」とは、サーバーを操作するための入り口のことで、「PHPを足がかりにサーバーを乗っ取られかねない」という意味が込められています。
PHPの開発元はこの問題を、深刻度の評価で最も高い区分の「緊急(Critical)」(CVSS v4.0で9.2)としています。日本でも、IPA(情報処理推進機構)とJPCERT/CC(JPCERTコーディネーションセンター)が10月22日に注意喚起を出しました。
サーバーを乗っ取られると、ホームページの書き換え、お問い合わせフォームに入力された個人情報の流出、迷惑メールの送信元や他社への攻撃の踏み台にされる、といった被害につながる恐れがあります。
なぜ、これほど大きなニュースになっているのですか?
PHPはWebサイトの約7割で使われている言語で、WordPressもPHPで動いています。しかも今回の問題はPHP本体にあるため、特定のソフトではなくPHPを使うサイト全体が対象になりうるからです。
影響範囲が広い
WordPressなどの有名なソフトに限らず、PHPでWebのリクエストを処理しているサーバー全般が対象になりえます。発見した米Wiz社は、PHP 5.4以降のバージョンが少なくともどちらか一方の影響を受けるとしています。
10年以上前から潜んでいた
Wiz社によると、この不具合は10年以上前から存在していました。攻撃の手順が非常に複雑だったため見過ごされてきましたが、同社はAIを活用した調査で発見したと公表しています。
「AIで見つかった」ということは、裏を返せば攻撃する側もAIで同じような弱点を探せる時代になったということです。見つかった弱点をふさぐ(=更新する)までのスピードが、これまで以上に大切になっています。
2つの脆弱性は、どんなしくみなのですか?
どちらも、PHPがWebからのリクエストを処理する途中で、本来は使ってはいけない「中途半端な情報」や「前の処理の残りもの」を使ってしまうことが原因です。
メモリ不足のときの後片付けミス
PHPがメモリ不足になると、作業を途中で打ち切ります。そのとき、まだ準備が終わっていない中途半端なデータのまま後片付けをしてしまう不具合です。
たとえるなら:書類を広げている途中で停電し、散らかった机の上を確認しないまま片付けを始めてしまうようなものです。
前のリクエストの「残りもの」
PHPは1つのプロセスで、多くのリクエストを順番に処理します。前のリクエストの情報が消えきらずに残り、次のリクエストで誤って使われてしまう不具合です。
たとえるなら:レジで、前のお客様の注文票が残ったまま、次のお客様の会計をしてしまうようなものです。
攻撃者はこの「中途半端な情報」や「残りもの」に細工をすることで、サーバー上でプログラムを動かそうとします。ログインもお問い合わせフォームも不要で、Webサイトに細工した通信を送るだけで狙われる点が、今回の深刻なところです。なお、Apacheの「mod_php」という方式でPHPを動かしている環境が、最も危険度が高いとされています。
どのバージョンのPHPが対象ですか?
PHP 8.2.35、8.3.36、8.4.27、8.5.12より前のバージョンが対象です。PHP 8.1以前はサポートが終了しており、PHPの開発元から修正版は提供されません。
| PHPの系列 | サポート状況 | 修正版 |
|---|---|---|
| 8.5系 | サポート中 | 8.5.12 以降 |
| 8.4系 | サポート中 | 8.4.27 以降 |
| 8.3系 | セキュリティ修正のみ | 8.3.36 以降 |
| 8.2系 | セキュリティ修正のみ(2026年12月31日でサポート終了) | 8.2.35 以降 |
| 8.1系以前 | サポート終了 | 公式の修正版なし。8.2以上への移行が必要 |
Linuxディストリビューションに含まれるPHPや、PHPを組み込んだ製品は、提供元が独自に修正版を出している場合があります。番号だけで判断せず、提供元の情報も確認してください。
また、PHP 8.2系も2026年12月31日でサポートが終了します。今回8.2系に更新する場合も、年内に8.3以上への移行を計画しておくと安心です。
実際に攻撃は起きているのですか?
JPCERT/CCによると、2026年10月26日時点で悪用できると主張する実証コードが多数公開され、悪用を試みる通信の観測報告も相次いでいます。
海外のセキュリティ企業からは、公表の数日前から攻撃の試みがあったという報告や、公表後1日ほどで攻撃の試みが数百万件規模に増えたという報告も出ています。現時点では、その多くは弱いサーバーを探すための調査的な通信とみられていますが、JPCERT/CCは今後、新たな攻撃手法や特定の環境を狙った攻撃が出てくる可能性を指摘しています。
「まだ大きな被害は聞かないから様子を見よう」ではなく、攻撃が本格化する前に更新を終えることが重要です。
うちの会社は関係ありますか?
次のどれかに当てはまれば、確認が必要です。中小企業では、ホームページ、お問い合わせフォーム、社内の業務システムでPHPを使っていることがよくあります。
- レンタルサーバーで、WordPressなどのホームページを公開している
- ホームページにPHPで作ったお問い合わせフォームや予約フォームがある
- VPSや自社サーバーで、ホームページや業務システムを動かしている
- Web画面で操作する業務システム(顧客管理、受発注、社内ポータルなど)を使っている
- ホームページの制作会社に作ってもらったまま、何年も更新していない
- サーバーを誰が管理しているのか、社内で把握できていない
特に最後の2つに当てはまる場合は要注意です。古いPHPのまま放置されている可能性が高く、今回のような緊急時に誰も対応できない状態になっているかもしれません。
具体的に、何をすればいいですか?
PHPを修正版に更新することが唯一の根本対策です。サーバーの種類によって、やることが変わります。
レンタルサーバーを使っている場合
- サーバー会社のお知らせを確認する多くの事業者が、10月22日以降にPHPの更新や緩和策の適用を進めています。自社が使っているサーバーが対象か、対応が完了したかを確認してください。
- 使っているPHPのバージョンを確認するWordPressなら、管理画面の「ツール」→「サイトヘルス」→「情報」→「サーバー」で確認できます。サーバー会社の管理画面でも確認できます。
- PHP 8.1以前なら、8.2以上に切り替える切り替え前に必ずバックアップを取り、切り替え後はトップページ、お問い合わせフォーム、管理画面のログインなど、主な機能が動くか確認します。
※今回はPHP本体の問題のため、WordPress本体やプラグインの更新では直りません(もちろん、それらの更新も普段から必要です)。
VPS・自社サーバーを使っている場合
- バックアップ(スナップショット)を取る更新で不具合が出たときに戻せるようにします。
- PHPを修正版に更新するOSのパッケージ管理機能などで更新します。VPSや専用サーバーは、サーバー会社ではなく利用者自身が更新する契約になっていることがほとんどです。
- PHPのプロセスを再起動し、実際に動いているバージョンを確認する更新しただけでは、古いPHPが動き続けている場合があります。Webサーバーと PHP-FPM などを再起動し、Webサイト側で動いているPHPのバージョンを確認します。
どうしてもすぐに更新できない場合(一時しのぎ)
- PHPの設定で
session.upload_progress.enabled=0にして、PHPを再起動する(IPA・JPCERT/CCが案内している緩和策) - 管理画面など、外部に公開する必要のない部分へのアクセスを制限する
- WAF(Webアプリケーションファイアウォール)で怪しい通信を防ぐ
- それも難しい場合は、外部からのアクセス遮断やサイトの一時停止も検討する
これらは攻撃経路の一部をふさぐだけで、根本的な対策ではありません。必ず、できるだけ早くPHPを更新してください。
すでに攻撃されていないか、確認する方法はありますか?
JPCERT/CCなどが、確認すべき痕跡を公開しています。ただし痕跡が見つからなくても「攻撃を受けていない」とは言い切れない点に注意が必要です。
サーバーのログで確認すること
- PHPのプロセスの異常終了や、頻繁な再起動が起きていないか
- メモリ不足のエラーや、HTTP 500エラーが急に増えていないか
- 不自然に長い、または形のおかしい
PHPSESSIDCookieが設定されていないか - 不審なファイル送信(multipart/form-data)のリクエストがないか
サイトやサーバーで確認すること
- 画像などのアップロード用フォルダに、見覚えのない .php ファイルがないか
- 知らない管理者ユーザーが増えていないか
- 見覚えのない定期実行(cron)が登録されていないか
- サーバーから不審な外部通信が出ていないか
攻撃が疑われる場合は、ログを消さずに保存したうえで、サーバーの切り離しや影響範囲の調査を行います。データベースのパスワードやAPIキーなど、サーバー上に保存していた認証情報の変更も必要です。自社だけで判断が難しい場合は、サーバー会社や専門家に相談してください。
今回の件から、中小企業は何を学ぶべきですか?
「ホームページは作って終わり」ではなく、誰がサーバーとPHPを管理し、いつ更新するのかを決めておくことが大切です。
管理者を明確にする
サーバーの契約者、管理画面のログイン情報、制作会社の連絡先を、社内で把握しておきましょう。
古いバージョンを放置しない
サポートが終わったPHPには、今回のような緊急時に修正が届きません。サポート期限を把握し、計画的に移行しましょう。
すぐ動ける体制をつくる
AIによって脆弱性の発見も攻撃も速くなっています。注意喚起が出たら、数日以内に更新できる体制が理想です。
株式会社情報システム室では、「かかりつけ情シス」として、PHPやサーバーのバージョン確認、更新作業、更新後の動作確認、侵害の痕跡調査までまとめてサポートしています。「うちのホームページは大丈夫?」「サーバーを誰が管理しているか分からない」という段階からご相談いただけます。
PHP2Shellに関するよくある質問
PHP2Shell(CVE-2026-109618/CVE-2026-109619)とは何ですか?
2026年10月21日にPHPの開発元が緊急で修正を公開した、PHP本体の2つの脆弱性の通称です。ログインしていない第三者が細工した通信を送るだけで、Webサーバー上で任意のプログラムを実行される恐れがあります。
どのバージョンのPHPが影響を受けますか?
PHP 8.2.35、8.3.36、8.4.27、8.5.12より前のバージョンが対象です。PHP 8.1以前はサポートが終了しており、PHPの開発元から修正版は提供されません。
WordPressの更新で対策できますか?
できません。今回はPHP本体の問題なので、直す必要があるのはPHPです。レンタルサーバーの場合は事業者がPHPを更新しているか確認し、古いPHPを使っている場合は8.2以上に切り替えます。
すぐにPHPを更新できない場合はどうすればいいですか?
一時的な対策として、PHPの設定で session.upload_progress.enabled=0 にしてPHPを再起動する方法が案内されています。ただし攻撃経路の一部をふさぐだけなので、できるだけ早く修正版に更新してください。
すでに攻撃されていないか確認する方法はありますか?
PHPのプロセスの異常終了やメモリ不足エラーの急増、アップロード用フォルダにある見覚えのない .php ファイル、知らない管理者ユーザーや定期実行の追加などを確認します。痕跡が見つからなくても攻撃を受けていないとは言い切れないため、不安な場合は専門家に相談してください。
参考情報
- IPA(情報処理推進機構)「PHP2shell(CVE-2026-109618/CVE-2026-109619)に関する注意喚起」
- JPCERT/CC「PHPの脆弱性(CVE-2026-109618、CVE-2026-109619、CVE-2026-115560)に関する注意喚起」
- PHP公式「Security advisory: Critical remote code execution vulnerabilities, update now」(英語)
- 使えるねっと「PHPの脆弱性(CVE-2026-109618 / CVE-2026-109619)について」(レンタルサーバー事業者の対応例)
- Uravation「PHP緊急脆弱性(php2shell)」(主要レンタルサーバー各社の対応状況のまとめ)
- Picus Security「PHP2Shell Explained」(英語)
- TidBITS「PHP2Shell Vulnerabilities Put 70% of Websites at Risk」(英語)
最終更新日: