セキュリティ
パートナーコンテンツ: 脆弱性の内容や悪用の広がりを解説するとともに、Taniumで短時間に全体を把握する方法を紹介します
環境内のどこかでPHPを運用している場合は、ただちにPHP 8.5.12、8.4.27、8.3.36、8.2.35のいずれかへパッチを適用してください。先週公表された2件の重大な脆弱性「CVE-2026-109618」と「CVE-2026-109619」(通称「PHP2Shell」)では、認証なしの攻撃者が細工したWebリクエストを送るだけで、サーバー上でコードを実行できます。どちらもCVSS v4.0スコアは9.2で、これより前のリリースはすべて影響を受けます。実環境での悪用も報告されています。
パッチの適用自体は簡単です。難しいのは、自社が保有するPHPをすべて見つけ出すことです。PHPは思わぬ場所に潜んでいることが多いためです。本記事では、脆弱性の内容、悪用の広がり、そして全体を素早く把握する方法を解説します。

何が起きたのか
詳細情報が予定していた公開解禁日より前に流出したため、PHPのセキュリティチームは迅速に動き、告知からおよそ1日で修正版をリリースしました。
| 日時(UTC) | 出来事 |
| 10月21日 14:17 | NVDがCVE-2026-109618を公開(ステータスは「Undergoing Analysis」) |
| 10月21日 14:04 | CISAのKEVカタログが更新されたが、どちらのCVEも未掲載 |
| 10月21日 約14:00 | PHPが公式アドバイザリを公開し、8.5.12、8.4.27、8.3.36、8.2.35をリリース |
| 10月21日 13:47 | 修正済みのWindowsビルドがdownloads.php.netに登場 |
| 10月21日 | watchTowrが、世界中に設置したハニーポットネットワークで悪用を観測したと報告 |
| 10月20日 | CERT-EUがアドバイザリ2026-018を発行し、インターネットに公開されたPHPアプリケーションの隔離を勧告 |
| 10月20日 | 詳細の流出を受けてPHPが緊急セキュリティリリースを発表。watchTowrが脆弱性の実在を確認 |
2件の脆弱性
どちらのバグもフレームワークやプラグインではなくPHPのコア部分にあります。そのため、Webリクエストへの応答にPHPを使うあらゆる環境に影響が及びます。
| CVE | 問題の内容 | RCEを検証済みの環境 |
| CVE-2026-109618 | PHPがマルチパート(ファイルアップロード)リクエストを解析する際、メモリ不足状態を経由してメモリ破損が発生する | mod_php |
| CVE-2026-109619 | 致命的エラーの直後のリクエストで、解放済みメモリの使用(use-after-free)が発生する | mod_php、PHP-FPM |
影響を受けるサーバー構成には、PHP-FPM、mod_php、php-cgi、FrankenPHP、LiteSpeedが含まれます。PHPはmod_phpを最も危険度が高いと評価しています。ログインは不要で、攻撃者はHTTP経由でPHPのエンドポイントに到達できさえすれば攻撃できます。
修正版は8.5.12、8.4.27、8.3.36、8.2.35です。これより前のリリースはすべて影響を受けます。PHPは7.4、8.0、8.1向けにも最小限のソースコード用バックポートを公開していますが、これらのブランチには公式リリースがありません。バックポートはあくまで暫定措置と位置づけ、アップグレードを計画してください。
悪用は確認されているのか
確認されています。ただし、信頼性の高い公開エクスプロイトはまだ少ない状況です。watchTowrは10月21日時点で、ハニーポットネットワークでの悪用を報告しています。Tenableは、Cloudflareの最高技術責任者(CTO)が同社で初期段階の攻撃を確認していると述べたと伝えています。Patchstackなど他のテレメトリでは、これまでのところ大半が探索行為(プロービング)にとどまっています。どちらのCVEもCISAのKEVカタログにはまだ掲載されておらず、公開された侵害指標(IoC)もありません。
悪用の難しさはプラットフォームによって異なります。VulnCheckは両方の脆弱性を再現し、次の点を確認しました。
-
コード実行は、ARM64のほか、アドレス空間配置のランダム化(ASLR)が無効なx86システムで成立します。
-
公開されている概念実証(PoC)は数十件ありますが、実際に動作するものはごくわずかで、x86-64でASLRを回避できるものはありません。
-
Red Hatも、デフォルト構成のPHP-FPM環境では、実際にRCEを成立させるのは難しいと評価しています。
だからといって、対応を先送りしてよいわけではありません。パッチの差分が公開されると、エクスプロイトは短期間で成熟します。また、注目を集めるCVEを装った偽のPoCリポジトリにはマルウェアが仕込まれていることが多いため、見つけた場合は十分に注意してください。Taniumの悪用可能性に関する調査は、Why PHP2Shell is real(新しいタブで開きます)にまとめられています。
最も危険なのは、インターネットに公開されたPHPアプリケーションで、特にmod_phpで動作するものやARM64ホスト上のものです。最近のWebサーバーやPHP-FPMのログを遡って調べ、原因不明のワーカーのクラッシュや不審なマルチパートリクエストがないか確認することも有効です。
PHPの発見が見た目以上に難しい理由
PHPベースのアプリケーションを網羅した一覧を持つ組織はなく、独自開発のものはどの一覧にも載りません。PHPは複数の場所に同時に潜んでいます。
-
LinuxのOSパッケージ(php、php-fpm、php8.xなど)。パッケージマネージャーやほとんどの資産管理ツールで把握できます。
-
macOSのHomebrewなど。OS標準のパッケージ一覧には含まれません。
-
Windowsに同梱されたPHP。Windowsでは通常、zipを展開したフォルダー、またはXAMPP、WampServer、Laragon、ベンダー製品といったスタックの内部に存在します。インストール済みアプリケーションとして登録されないことも珍しくありません。
-
独自のPHPを同梱するアプリケーション。この場合、修正はOSではなくアプリケーションのベンダー次第です。
-
コンテナ。バージョンがイメージタグに固定されています。
PHPは担当者の想像以上に広く使われていることが多く、サーバーだけで動いているわけでもありません。開発ツール、ローカルのWebスタック、同梱アプリケーションによってワークステーションにも入り込んでおり、インストール済みアプリケーションとして登録されないことも多くあります。
確実な方法は、バイナリそのものを調べることです。検証したところ、バージョン5から8までのPHPビルドはいずれもバージョン文字列(X-Powered-By: PHP/x.y.z)を埋め込んでいるため、実行しなくてもファイルから正確なバージョンを読み取れます。
Taniumによる支援
Tanium自体は影響を受けません。TaniumはPHPを使用していないため、Taniumのソフトウェアおよびサービス「Tanium Cloud」への影響はありません。
PHP2Shell向けのTanium Guardianコンテンツは、Tanium Cloudですでに利用できます。ダッシュボードにはPHPのインストール先と稼働状況が表示されるため、パッチ適用の優先順位を判断できます。Linux、Windows、macOS全体で、脆弱なPHPを持つエンドポイントの数を一元的に確認できます。このダッシュボードは、次の要素を組み合わせています。
-
既存のInstalled ApplicationsセンサーとHomebrew Applicationsセンサー。macOSとLinuxでパッケージマネージャー経由で導入されたPHPを検出します。
-
Windows PHP Installationsセンサー。Installed Applicationsでは見えない場所にあるPHPを検出します。対象はIIS、XAMPP、WampServer、Laragon、パッケージマネージャー、手動で展開したコピーなどで、バージョン、インストール種別、インストールパス、所有ユーザーを報告します。バージョンは、バイナリを実行せずにファイルのメタデータから読み取ります。
-
実行中のPHPプロセスを一覧表示する、構築済みのSaved Question。トラフィックを処理している可能性のあるシステムを優先的に確認できます。
-
PHPコンテナを特定する、構築済みのSaved Question。実行中のコンテナを、php、FrankenPHP、およびWordPress、Drupal、Joomla、Nextcloud、Magentoなど約25種類の一般的なPHPベースのイメージと照合します。Tanium Cloud Workloadsが必要です。
Tanium Complyはディスク上のPHPを検出します。Complyのライセンスを持つ顧客向けに、ダッシュボードにはエンドポイントごとのPHP2Shell検出結果、検出の詳細、7日間の推移が表示されます。さらに、2件のCVEで絞り込んだComplyの検出結果ページへ移動することもできます。検出の詳細レポートには、PHPが見つかったディスク上の具体的な場所が示されるため、パッケージやレジストリの資産情報では見落としがちなコピーも捕捉できます。Windows、Linux、macOS向けのVulnerability Libraryの定義はすでに公開されています。TVLを同期して評価を実行すれば、取り込めます。
オンプレミスの顧客は、現時点ではGuardianコンテンツを手動でインポートできます。手順とダウンロードは、Tanium Help Centerのオンプレミス顧客向けGuardianコンテンツ(新しいタブで開きます)に掲載されています。
インターネットに露出している資産も把握しておく必要があります。Censys Internet Intelligenceによると、影響を受ける可能性のあるバージョンのPHPを実行している、インターネットに公開された資産は1300万件を超えます。Tanium External Attack Surface Management(EASM)は、組織に紐づくインターネット公開資産を検出し、その中からPHPのサービス、バージョン、Webプロパティを特定します。これらのCVEは、悪用可能な脆弱性や武器化された脆弱性を対象とするカバレッジを通じて表示されます。続いてTanium Attack Path Mappingが、公開されている資産のうち、クラウドインスタンス、ロール、特権IDと露出ポイントを共有するものを示します。つまり、悪用された1台のPHPサーバーが、環境の奥深くへ入り込む経路になりうる箇所です。
すでにTanium SBOMを利用している場合は、そこでPHPのバージョンを棚卸しすることが、有効な最初の一歩になります。脆弱なPHPを含み、ベンダーによるアップデートが必要なアプリケーションを確認できます。
今すぐ取るべき対応
以下を順に進めてください。特に最初の3項目が、今日は重要です。
-
アプリケーションとして登録されていないWindows上のコピーも含め、すべてのPHPインストールを見つけ出し、それぞれの正確なバージョンを記録します。
-
露出度で優先順位をつけます。インターネットに公開されたサーバー、mod_php構成、ARM64ホストを最優先にします。
-
OSベンダー、php.netのビルド、またはアプリケーションベンダーを通じて、8.5.12、8.4.27、8.3.36、8.2.35のいずれかにパッチを適用します。新しいバイナリを読み込ませるため、PHP-FPMとWebサーバーのワーカーを再起動します。
-
まだパッチを適用できない場合は、CERT-EUの勧告どおり、可能な範囲でインターネットに公開されたPHPアプリケーションを隔離し、前段にWAFまたはIDSのルールを設置します(CloudflareとVulnCheckは、既知の攻撃手法に対するルールをすでに提供しています)。
-
部分的な対策設定は慎重に適用してください。session.upload_progress.enabled=0は、CVE-2026-109619で実証された攻撃経路の1つを塞ぐだけで、CVE-2026-109618には効果がありません。この設定はphp.ini、FPMプール、またはサーバー設定で行い、その後にワーカーを再起動する必要があります。ini_set()や.user.iniでは適用されません。
-
脅威ハンティングを実施します。最近のWebサーバーとPHP-FPMのログから、ワーカーのクラッシュや不正な形式のマルチパートアップロードを確認します。
-
サポート終了(EOL)のPHPからの移行を計画します。8.1以前のバージョンには、修正済みの公式リリースがありません。
修正済みパッケージの提供状況(10月21日16:30 UTC時点)
ディストリビューションのパッケージは順次提供されている段階です。修正版が利用可能と判断する前に、ベンダーの情報を確認してください。
| プラットフォーム | 状況 |
| Ubuntu 22.04、24.04、26.04、26.10 | 修正済み(USN-8948-1) |
| Ubuntu 20.04 | Ubuntu Proの契約者のみ修正済み |
| Debian 12および13 | 修正済み |
| Windows(php.netビルド) | 修正済み |
| Docker公式phpイメージ | 修正済みタグ:8.5.12、8.4.27、8.3.36、8.2.35 |
| cPanel EasyApache 4 | 25.91で修正 |
| Plesk for Linux | 修正済み。Plesk for Windowsは未対応 |
| RHEL 8、9、10および互換ディストリビューション | 未対応 |
| SUSE、Alpine、Chocolatey、Homebrew core | 未対応 |
| Amazon Linux 2023 | php8.2〜8.5は未対応。php8.1は修正予定なし |
Remiリポジトリは本日中には更新を提供しません。Remiに依存している場合、PHPはディストリビューションのパッケージへの切り替え、またはソースからのビルドを勧めています。
提供:Tanium