専門家解説#PHP#脆弱性#サイバーセキュリティ#WordPress

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

公開日 / 最終更新 / 読了時間 約12分/ 執筆 代表取締役 橋本/ カテゴリ 専門家解説
PHPの緊急脆弱性php2shell。修正版の版番号と、対象の確認・更新・応急処置の手順を示した図

2026年10月21日、Webサイトの多くが使うプログラム言語PHPに、緊急の脆弱性が2件あるとして、修正版が公開されました。通称「php2shell」。ログインなしで、外部からサーバー上のプログラムを実行されるおそれがあり、深刻度は2件ともCVSS v4.0で9.2(緊急)です。修正版の公開前から情報の一部が出回り、レンタルサーバー各社が一部機能を止めるなど、IT業界は対応に追われています。

この記事では、何が起きたか、自社が対象かどうかの確かめ方、更新の手順、更新できないときの応急処置を、順に説明します。WordPressなどでサイトを運用している方、制作会社に任せている方にも分かるように書いています。

この記事は2026年10月21日23時45分(日本時間)時点の情報です。攻撃の状況や各社の対応は日々変わります。最新の情報はPHPの公式サイトとIPAの注意喚起で確認してください。この記事も随時更新します。
この記事の要点(TL;DR)
  • 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は実際の攻撃が起きているとは書いていませんが、一部のセキュリティ企業は攻撃の兆候を報告しています。

自社は対象か:版と動かし方で確かめる

PHPの版ごとの対応表と対象の実行環境の図。8.5.12/8.4.27/8.3.36/8.2.35より前は対象、8.1以前は公式の修正版なし

対象のバージョン

使っている版状況やること
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のバージョンを確かめる

更新までの4ステップの図。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)

  1. 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)を検索して確かめます。
  2. PHPを動かし直す:更新しただけでは、動いているPHPは古いままです。PHP-FPMなら sudo systemctl restart php8.3-fpm(版の部分は環境に合わせる)、Apacheのmod_phpなら sudo systemctl restart apache2(Red Hat系は httpd)を実行します。
  3. 更新を確かめる:もう一度 php -v などで版を確認し、サイトが正しく表示されるかを確かめます。

コンテナ(Docker など)で動かしている場合

PHPの公式イメージなど、元になるイメージを修正版に更新し、イメージを作り直して入れ替えます。古いイメージのまま動いているコンテナが残っていないかも確認します。

手順3:すぐ更新できないときの応急処置

すぐ更新できないときの応急処置の図。応急設定、WAFなど追加でやること、委託先・利用サービスへの確認、攻撃痕跡の確認

PHPの公式情報は「完全な対策は更新だけ」としています。以下は、更新までの間に攻撃の道を一部減らすための措置で、これだけで安全にはなりません。設定は php.ini やPHP-FPMのプール設定など、サーバー側で変更し、変更後はPHPを動かし直します。

対象設定意味
CVE-2026-109619session.upload_progress.enabled = 0ファイルアップロードの進み具合を記録する機能を止める
CVE-2026-109619(8.5のみ)fatal_error_backtraces = 0致命的なエラーの詳しい記録を止める
CVE-2026-109618memory_limit = -1メモリ不足の途中停止を起こしにくくする(アプリ側から上書きできない方法で指定)
CVE-2026-109618post_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の脆弱性「php2shell」とは何ですか?
2026年10月21日に修正版が公開された、PHPの2件の脆弱性(CVE-2026-109618、CVE-2026-109619)の通称です。ログインなしで外部からサーバー上のプログラムを実行されるおそれがあり、深刻度はCVSS v4.0で9.2(緊急)です。
どのバージョンに更新すればよいですか?
8.5系は8.5.12以上、8.4系は8.4.27以上、8.3系は8.3.36以上、8.2系は8.2.35以上です。8.1以前にはPHP公式の修正版が出ないため、8.3以上への移行を検討してください。OSの提供元のパッケージは、版の番号が違っても修正が入っている場合があります。
レンタルサーバーのWordPressは、何をすればよいですか?
管理画面でPHPの版を確認し、事業者のお知らせで修正版を当てたかを確かめます。8.1以前を選んでいる場合は、バックアップを取ったうえで8.3以上に切り替えます。WordPressの「ツール」→「サイトヘルス」→「情報」→「サーバー」でも版を確認できます。
設定を変えるだけで防げますか?
防げません。PHPの公式情報は、完全な対策は修正版への更新だけとしています。session.upload_progress.enabled=0 などの設定変更は、更新までの間に攻撃の道を一部減らす応急処置です。
実際に攻撃は起きていますか?
PHPの公式情報では、Apacheのmod_phpで攻撃が実証されていますが、2026年10月21日の公開時点で実際の攻撃が起きているとは書かれていません。一方で、一部のセキュリティ企業は攻撃の兆候を報告しています。修正版の公開後は攻撃が増えるのが通例のため、早めに更新してください。

まとめ

  • 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件)

脆弱性を突かれた事故、委託先経由の事故などを、原因・業種・公表月で絞り込めます。

DBを開く →

出典・参考資料

※本記事は2026年10月21日23時45分(日本時間)時点のPHP公式情報・セキュリティ勧告・報道に基づきます。攻撃の状況や各社の対応は変わるため、最新の情報は公式の発表で確認してください。本記事は随時更新します。

SHARE /
X f L
AUTHOR / 執筆者

この記事の執筆者

K.H

橋本 健太郎

株式会社カトルセ 代表取締役

生成AI研修・AI開発・AI顧問・PM/PMO支援を提供。累計2,000名以上のAI研修を支援し、大手企業の生成AI活用、ローカルLLM/RAG/AIエージェント導入、業務改善プロジェクトに携わる。実務に直結する「使えるAI活用」を一貫して伝えている。