PHPの緊急脆弱性「php2shell」とは|対象バージョン・修正版・更新手順と応急処置(2026年10月)

2026年10月21日、Webサイトの多くが使うプログラム言語PHPに、緊急の脆弱性が2件あるとして、修正版が公開されました。通称「php2shell」。ログインなしで、外部からサーバー上のプログラムを実行されるおそれがあり、深刻度は2件ともCVSS v4.0で9.2(緊急)です。修正版の公開前から情報の一部が出回り、レンタルサーバー各社が一部機能を止めるなど、IT業界は対応に追われています。
この記事では、何が起きたか、自社が対象かどうかの確かめ方、更新の手順、更新できないときの応急処置を、順に説明します。WordPressなどでサイトを運用している方、制作会社に任せている方にも分かるように書いています。
- PHPにログインなしで外部からプログラムを実行される脆弱性が2件(CVE-2026-109618、CVE-2026-109619)。深刻度はCVSS v4.0で9.2(緊急)です。
- 修正版は 8.5.12/8.4.27/8.3.36/8.2.35(10月21日公開)。これより古い版はすべて対象と考えてください。
- Webのリクエストを処理する全ての動かし方(PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeed)が対象。特にmod_phpは攻撃が実証済みで、最も危険です。
- PHP 8.1以前は、PHP公式からの修正版が出ません。8.2以上へ移行するか、OSやサポート事業者が出す修正を確認してください。8.2も2026年12月31日でサポートが終わります。
- 設定の変更による応急処置は「攻撃の道を一部減らすだけ」で、完全な対策は更新だけです。
何が起きたか:php2shellの概要
PHPの開発チームは10月20日、重大な脆弱性2件を修正するセキュリティリリースを出すと事前に告知し、10月21日14時(協定世界時。日本時間23時)に修正版を公開しました。2件の中身は次のとおりです。
| CVE番号 | 何が起きるか | 深刻度 |
|---|---|---|
| CVE-2026-109618 | メモリ不足の処理の途中でPHPが止まると、中途半端な状態のデータを、後片付けの処理が正しいデータとして扱ってしまう。これを利用して、外部からプログラムを実行される | CVSS v4.0 9.2(緊急) |
| CVE-2026-109619 | あるリクエストで使った内部の情報が、メモリを解放した後も残り、同じ処理担当(ワーカー)が次に受けたリクエストでそれを使ってしまう。これを利用して、外部からプログラムを実行される | CVSS v4.0 9.2(緊急) |
どちらも認証(ログイン)が要りません。攻撃に成功すると、Webサーバーの実行アカウントの権限でプログラムを動かされ、サイトの改ざん、情報の持ち出し、別の攻撃の踏み台につながります。「php2shell」は、PHPを使ってサーバーの操作画面(シェル)を奪える、という意味の通称です。
なぜ大騒ぎになっているのか
- 使っている場所が非常に多い:WordPressなどのCMS、ECサイト、予約サイト、社内システム、データベースの管理画面(phpMyAdmin)など、日本のWebサイトの多くがPHPで動いています。
- 公開前に情報が出回った:修正版の公開前から脆弱性の情報の一部が出回り、「攻撃コード」と称するファイルも流れました。中身は検証されておらず、マルウェアが混ざっているおそれがあるため、入手・実行しないでください。
- 攻撃が実証済み:PHPの公式情報では、Apacheのmod_phpで、ログインなしのリクエストが攻撃を起動できることが実証されています。10月21日の公開時点で、PHPは実際の攻撃が起きているとは書いていませんが、一部のセキュリティ企業は攻撃の兆候を報告しています。
自社は対象か:版と動かし方で確かめる

対象のバージョン
| 使っている版 | 状況 | やること |
|---|---|---|
| 8.5系 | 8.5.12より前は対象 | 8.5.12以上へ更新 |
| 8.4系 | 8.4.27より前は対象 | 8.4.27以上へ更新 |
| 8.3系 | 8.3.36より前は対象 | 8.3.36以上へ更新 |
| 8.2系 | 8.2.35より前は対象 | 8.2.35以上へ更新。2026年12月31日にサポート終了のため、8.3以上への移行も計画する |
| 8.1以前(7.x・8.0・8.1) | PHP公式の修正版は出ない | 8.3以上へ移行。すぐ移行できない場合は、OS(Linuxディストリビューション)やサポート事業者の修正を確認する |
PHPのセキュリティチームは、7.4・8.0・8.1向けに最小限の修正を「ソースコード」の形で用意していますが、自分でPHPをビルドできる環境向けのものです。多くの会社は、OSの提供元やサポート事業者の修正を当てるか、サポート中の版へ移行することになります。
対象の動かし方(実行環境)
Webのリクエストを処理する全ての動かし方が対象です。PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeed(LSAPI)が含まれます。mod_phpは攻撃が実証されており、最も危険です。PHP-FPMは、プログラムの解析から影響があると判断されています。
手順1:PHPのバージョンを確かめる

まず、PHPを使っているシステムを一覧にします。自社で運用しているサイト、制作会社・保守会社に任せているサイト、レンタルサーバーで動いているサイト、社内の申請システムやデータベースの管理画面(phpMyAdmin)も含めます。そのうえで、それぞれの版を確かめます。
- WordPressの場合:管理画面にログインし、左のメニューの「ツール」→「サイトヘルス」を開きます。上部の「情報」タブを押し、「サーバー」の項目を開くと「PHPのバージョン」が表示されます。
- レンタルサーバーの場合:各社の管理画面に「PHPバージョン設定」「PHP Ver.切替」などの項目があります(例:エックスサーバーは「サーバーパネル」→「PHP」→「PHP Ver.切替」)。ドメインごとに版が違うことがあるため、全てのドメインを確認します。表示されるのは「8.3」のような系列だけのことが多く、細かい版(8.3.36など)は事業者のお知らせで確認します。
- 自社でサーバーを管理している場合:SSH(サーバーを遠隔で操作するための接続)でサーバーにログインし、ターミナル(文字で命令を入力する画面)で
php -vと入力してEnterキーを押すと、1行目に版が表示されます。Webで使っているPHP(PHP-FPMなど)とコマンドのPHPが別の版のこともあるため、php-fpm -v(環境によりphp-fpm8.3 -vなど)も確認します。 - 制作会社・保守会社に任せている場合:「PHPを使っているか」「版はいくつか」「修正版をいつ当てるか」の3点を、今日中に問い合わせます。
注意:版を確かめるために phpinfo() を表示するページを公開のまま作らないでください。サーバーの詳しい情報を攻撃者に見せることになります。
手順2:修正版に更新する
レンタルサーバーの場合
多くのレンタルサーバーでは、事業者がPHPを更新します。各社のお知らせ(管理画面のお知らせ欄や公式サイト)で、修正版を当てた日時を確かめてください。8.1以前を選んでいる場合は修正が届かないことがあるため、管理画面でPHPの版を8.3以上に切り替えます。切り替え前に、サイトのバックアップを取り、古いテーマやプラグインが新しい版で動くかを確認します。
PHPやWordPressを使い続ける必要がないサイトなら、静的なHTMLに置き換えてPHPそのものをなくす方法もあります。当社が実際に行った手順は「PHP脆弱性「php2shell」をきっかけにWordPressを卒業した話」にまとめています。
自社でサーバーを管理している場合(Linux)
- OSの提供元の修正パッケージを入れる:Ubuntu・Debianなら
sudo apt updateのあとsudo apt upgrade、Red Hat系(RHEL・AlmaLinux・Rocky Linuxなど)ならsudo dnf update 'php*'を実行します。OSの提供元のパッケージは、修正だけを取り込むため、版の番号が「8.3.36」にならないことがあります。修正が入ったかは、OSの提供元のセキュリティ情報でCVE番号(CVE-2026-109618、CVE-2026-109619)を検索して確かめます。 - PHPを動かし直す:更新しただけでは、動いているPHPは古いままです。PHP-FPMなら
sudo systemctl restart php8.3-fpm(版の部分は環境に合わせる)、Apacheのmod_phpならsudo systemctl restart apache2(Red Hat系はhttpd)を実行します。 - 更新を確かめる:もう一度
php -vなどで版を確認し、サイトが正しく表示されるかを確かめます。
コンテナ(Docker など)で動かしている場合
PHPの公式イメージなど、元になるイメージを修正版に更新し、イメージを作り直して入れ替えます。古いイメージのまま動いているコンテナが残っていないかも確認します。
手順3:すぐ更新できないときの応急処置

PHPの公式情報は「完全な対策は更新だけ」としています。以下は、更新までの間に攻撃の道を一部減らすための措置で、これだけで安全にはなりません。設定は php.ini やPHP-FPMのプール設定など、サーバー側で変更し、変更後はPHPを動かし直します。
| 対象 | 設定 | 意味 |
|---|---|---|
| CVE-2026-109619 | session.upload_progress.enabled = 0 | ファイルアップロードの進み具合を記録する機能を止める |
| CVE-2026-109619(8.5のみ) | fatal_error_backtraces = 0 | 致命的なエラーの詳しい記録を止める |
| CVE-2026-109618 | memory_limit = -1 | メモリ不足の途中停止を起こしにくくする(アプリ側から上書きできない方法で指定) |
| CVE-2026-109618 | post_max_size を小さく(アップロード不要なら8M、必要なら32M) | 大きなリクエストを受け付けない |
- WAF(不正な通信を止める仕組み)を使います。Cloudflareなどは、既知の攻撃の型を止めるルールを配布しています。
- ファイルのアップロードを使わないサイトでは、Webサーバーや前段の装置で、アップロード形式(multipart)のリクエストを止めます。
- インターネットに公開する必要のない管理画面(phpMyAdminなど)は、公開をやめるか、接続元を社内に限ります。さくらインターネットは、さくらのクラウドのデータベース管理画面の提供を一時停止しました。
手順4:攻撃されていないかを確かめる
修正版の公開後は、修正内容から攻撃方法を割り出した攻撃が増えるのが通例です。更新が遅れた期間がある場合は、次の点を確認します。
- Webサーバーのアクセスログに、見覚えのない大きなリクエストや、アップロード形式のリクエストが急に増えていないか。
- PHPのエラーログに、メモリ不足や致命的なエラーが急に増えていないか。
- 公開フォルダに、作った覚えのないPHPファイルが置かれていないか。WordPressなら、プラグイン・テーマ・アップロード用のフォルダも確認します。
- 管理者アカウントが勝手に増えていないか。
痕跡が見つかったら、サーバーを切り離して記録を保全し、専門の会社に調査を依頼してください。個人情報が漏えいしたおそれがあれば、個人情報保護委員会への報告(発覚から3〜5日以内の速報)が必要になる場合があります。
委託先・利用サービスにも確認する
自社のサイトだけでなく、自社の情報を預けているサービスがPHPで動いている場合も影響を受けます。2026年10月は、Web制作サービスのStudio、防災メール配信のSpeeCAN RAIDEN、メール配信のユミルリンクなど、利用しているサービスへの攻撃で、何十もの企業・自治体が公表する事故が相次ぎました(詳しくは「情報漏えい事故まとめ 10月10日〜21日」)。予約・会員管理・メール配信・フォーム作成など、顧客情報を預けているサービスには、PHPの修正をいつ当てたかを確認しておくと安心です。
使っている製品と委託先の一覧づくり、毎日の脆弱性情報の照合を、生成AIで回したい方へ
「どのシステムが、どの版の部品を使っているか」「どの委託先に何を預けているか」を一覧にし、新しい脆弱性や事故の情報と毎日照らし合わせる。カトルセのAI顧問が、この仕組みづくりをご支援します。
よくある質問(FAQ)
まとめ
- PHPに、ログインなしで外部からプログラムを実行される脆弱性が2件見つかり、修正版(8.5.12/8.4.27/8.3.36/8.2.35)が10月21日に公開されました。
- Webで動くPHPは全ての動かし方が対象で、mod_phpは攻撃が実証済みです。8.1以前には公式の修正版が出ません。
- やることは、①PHPを使うシステムの洗い出し、②版の確認、③修正版への更新とPHPの再起動、④攻撃の痕跡の確認、の4つです。設定による応急処置は、更新までのつなぎにすぎません。
- 自社のサイトだけでなく、情報を預けている委託先・利用サービスの対応も確認してください。
国内の情報漏えい事故を検索:セキュリティ事故DB 2026(584件)
脆弱性を突かれた事故、委託先経由の事故などを、原因・業種・公表月で絞り込めます。
出典・参考資料
- PHP「News Archive 2026」(セキュリティリリースの告知と勧告)
- PHP セキュリティ勧告 GHSA-w8hw-w9fx-j79w(CVE-2026-109618)
- PHP セキュリティ勧告 GHSA-6wmf-4rv5-p3rp(CVE-2026-109619)
- PHP 8 ChangeLog
- IPA「【事前準備のお願い】PHPのセキュリティリリース公開予定について」
- piyolog「修正予告されたPHPの2件の深刻な脆弱性についてまとめてみた」
- @IT「PHPの重大脆弱性『php2shell』、パッチ公開まで待てない GMOが示した暫定策と注意点」
- Tenable「php2shell FAQ」
- さくらのクラウド「データベース アプライアンスにおける一部機能の提供停止のお知らせ」
※本記事は2026年10月21日23時45分(日本時間)時点のPHP公式情報・セキュリティ勧告・報道に基づきます。攻撃の状況や各社の対応は変わるため、最新の情報は公式の発表で確認してください。本記事は随時更新します。
