10月21日21時55分、高市総理がXで「皆様に、今夜に対応して頂きたい大至急のお願いです」と投稿し、PHPの修正パッチをすぐ当てられるよう準備してほしいと呼びかけました。それから約25時間が経ちました。
この記事では、10月22日夜の時点で確認できた事実と、まだはっきりしていないことを分けてまとめます。サイトを運営している人が今夜やることは、最後の章にまとめました。
状況は数時間単位で変わっています。この記事は10月22日夜(日本時間)の時点の情報です。必ず各公式発表もあわせて確認してください。
| 項目 | 10月22日夜時点の状況 |
|---|---|
| 脆弱性 | CVE-2026-109618 / CVE-2026-109619(通称 php2shell)。どちらも深刻度 9.2(CVSS v4.0) |
| 何が起きるか | ログインなしで、外部からサーバー上のプログラムを実行される恐れ |
| 修正版 | PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35(日本時間21日深夜に公開済み) |
| 攻撃の試み | ある。AWSは公表4日前の10月17日に試みを観測。公表後は試行が急増 |
| 攻撃の成功 | 公表後の大量の試行のうち、侵入に成功したという公的な確認は、現時点で見当たらない |
| 国内の対応 | 多くのサービスが予防的に停止・緊急メンテ。主要サービスは22日中におおむね再開 |
| PHP 8.1以前 | 公式の修正版は出ない。移行するか、暫定策をとるか、停止する |
| 日時(日本時間) | 出来事 |
|---|---|
| 10月17日 | AWSのハニーポット(おとりのサーバー)が、悪用の試みを観測。公表の4日前 |
| 10月20〜21日 | PHPが2件の脆弱性を事前告知し、21日夜に修正版を出すと予告。IPAが「事前準備のお願い」を公開 |
| 10月21日 夜 | pixiv、ニコニコ、Chatwork、BASE、コドモン、Cygamesの各タイトルなどが予防的なメンテナンスに入る |
| 10月21日 21:55 | 高市総理がXで対応を呼びかけ。国家サイバー統括室も「パッチ適用が困難な場合はサイトの一時停止も有効」と投稿 |
| 10月21日 22:40頃 | PHPの修正版(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35)が公開される |
| 10月22日 未明〜朝 | Chatwork(0時15分頃)、コドモン、BASE、グランブルーファンタジーなどが順次再開 |
| 10月22日 | JPCERT/CCが注意喚起を公開し、攻撃を受けた痕跡の確認方法を示す。さくらインターネットは「14時現在、被害の報告はない」と発表 |
AWSによると、悪用の試みを最初に観測したのは10月17日です。脆弱性が公表される4日前で、修正版はまだありませんでした。21日にはパッチ公開の約12時間前から、複数の攻撃コードによる試行が続いたとしています。複数の攻撃者が関わっている可能性が高いとの見方です。
AWSは、調査は公表日の21日からではなく、10月17日から始めるようにと勧めています。
Cloudflareのマシュー・プリンスCEOの説明によると、試行は公表から45分で数万件、2時間で数十万件に増え、その後は数百万件に達しました。攻撃者は、Cloudflareの防御(WAF)を回避しようと、送り込むデータを変えながら試しているとも報告されています。
これだけ試行が多くても、10月22日夜の時点で、この脆弱性を使った侵入が実際に成功したという公的な発表や被害報告は見当たりません。AWSも、観測した試みが成功したかどうかはわからないとしています。
ただし、「確認されていない」ことは「被害がない」ことを意味しません。後で書くとおり、攻撃の痕跡がログに残らない場合があるためです。
21日夜から22日にかけてメンテナンスに入ったサービスの多くは、攻撃を受けたからではなく、更新作業のために止めたものです。たとえばオムロン ヘルスケアは、メンテナンスは安全確保のためで、不正アクセスや情報漏えいの被害によるものではないと説明しています。
「〇〇が止まった=〇〇が攻撃された」と受け取らないよう注意してください。
PHPは、Webサイトを動かすサーバー側のプログラムです。サイトを見るだけの一般の利用者が、自分のスマホやパソコンで何かを更新する必要はありません。総理の呼びかけは「皆様」宛てでしたが、実際に対応するのはサイトの運営者、開発会社、レンタルサーバー会社です。
利用者としては、利用しているサービスから「パスワードを変えてください」などのお知らせが来た場合に、その指示に従えば十分です。
| 論点 | 状況 |
|---|---|
| 実際の被害件数 | 公的な集計は出ていない |
| 米CISAの「悪用が確認された脆弱性」リストへの掲載 | 22日時点で掲載の報道は見当たらない |
| 修正版で本当に塞がったか | 「8.5.12のパッチは不完全で回避できる」とする投稿が海外で出ているが、PHP公式は認めておらず、未検証 |
| 修正版の別の不具合 | 8.4.27 / 8.5.12 で、SimpleXMLを使う処理でサーバーが落ちる不具合が報告されている(修正は承認済み・未公開とされる) |
修正版を当てたあとに「サーバーが不安定になった」場合は、この不具合の可能性があります。ただし、だからといって古いバージョンに戻すのは危険です。PHPの公式サイトとディストリビューションの続報を待ってください。
サーバーで次のコマンドを実行します。
php -v
ただし、コマンドで表示されるPHPと、Webサイトを実際に動かしているPHPが別のことがあります。管理画面(Pleskなど)では、サイト用のPHPは更新済みでも、管理画面そのものが使うPHPが古いままというケースが指摘されています。
レンタルサーバーを使っている場合は、各社の管理画面で利用中のPHPバージョンを確認し、お知らせページで対応状況を見てください。
| 使っている系列 | 更新先 |
|---|---|
| PHP 8.5 | 8.5.12 以降 |
| PHP 8.4 | 8.4.27 以降 |
| PHP 8.3 | 8.3.36 以降 |
| PHP 8.2 | 8.2.35 以降(8.2は2026年12月31日でサポート終了予定) |
| PHP 8.1 以前 | 公式の修正版なし。サポート中の系列へ移行する |
RHEL、AlmaLinux、Debian、Ubuntu などのパッケージは、バージョン番号が上の表と一致しなくても、修正が取り込まれている(バックポート)場合があります。配布元のお知らせで確認してください。
更新したら、PHP-FPM や Apache を再起動するのを忘れないでください。再起動しないと古いプログラムが動き続けます。
公式に示されている暫定策は次のとおりです。どれも完全な対策ではありません。
session.upload_progress.enabled=0 を設定する(PHP 8.5 では fatal_error_backtraces=0 も)memory_limit=-1 を設定するそれも難しい場合は、国家サイバー統括室が示したとおり、更新できるまでサイトを一時停止するのが確実です。
JPCERT/CCは、次の点をログで確認するよう勧めています。調査は10月17日以降を対象にしてください。
PHPSESSID クッキーを返していないかmultipart/form-data のリクエストがなかったか。その前後に、PHPのメモリ上限エラーや HTTP 500 エラーが出ていないかJPCERT/CCは、これらの痕跡が見つからなくても、攻撃を受けていないとは言い切れないとしています。侵害が疑われるときは、ログを保全してから調査し、サーバーを隔離してください。
なお、PHPを更新しても、すでに仕込まれた不正なプログラム(バックドア)は消えません。
GitHubなどには、「php2shell の攻撃コード」や「脆弱性チェッカー」を名乗るものが公開直後から出回っています。セキュリティ企業のTenableは、動作が確認できないものが多く、マルウェアが仕込まれている恐れがあると注意しています。出どころのわからないツールを本番サーバーで実行しないでください。
技術的な仕組み(memory_limit を越えたときに何が起きるのか)は、こちらで詳しく書いています。
---