PHP脆弱性を理解しビジネスへの影響を理解する

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「PHP2Shell脆弱性の理解とパッチ適用中のリスク軽減」を再編集したものです。

米国で掲載ブログの抄訳です 2026年10月23日金曜日

今週開示された2つのクリティカルなPHP脆弱性は、Webサイト、お客様ポータル、その他のWebアプリケーションに依存する組織にとって、緊急のセキュリティおよび事業継続性リスクをもたらします。総称してPHP2Shellとして知られるこれらの欠陥により、認証されていない攻撃者が影響を受けるサーバー上でコードを実行し、機密情報を露出させたり、サービスを中断させたりする可能性があります。

フォーティネットは、FortiGateを動かすオペレーティングシステムであるFortiOSが、これらの脆弱性の影響を受けないことを確認しました。FortiManager、FortiAnalyzer、FortiWeb、およびその他多くのフォーティネット製品も影響を受けないことが確認されています。お客様は、製品の完全なリストと最新のアップデートについて、フォーティネットのPSIRTアドバイザリをご確認ください。

PHP2Shellの影響は非常に広範囲に及び、サイバーセキュリティセクターの製品を含む業界全体に広がっています。PHPアプリケーションを実行している組織にとって、修復にはセキュリティ、アプリケーション、インフラストラクチャチーム間の調整が必要です。基盤となるソフトウェアの更新には、互換性テスト、メンテナンスウィンドウ、サービスの再起動が必要になる場合があり、パッチ適用が遅れる可能性があります。FortiGuard Labsは、脆弱性ガイダンスと仮想パッチ保護により、 このプロセス中の露出を軽減するお手伝いをしています。デプロイメント中は暫定的な管理策を使用しながら、安全に実施できる限り早急にPHPセキュリティアップデートを適用する必要があります。

PHP2Shellとそのビジネスへの影響の理解

30年以上存在しているPHPは、WordPress、Drupal、Joomla、Magentoなどの広く展開されているプラットフォームを動かすサーバー側スクリプト言語です。組織は、PHPアプリケーションを自ら開発していなくても、商用アプリケーション、ホスティングプロバイダー、または組み込みコンポーネントを通じてPHPに依存している可能性があります。

PHP2Shellは、アプリケーションコードを実行するソフトウェアであるPHPランタイムに影響を与えます。コンテンツ管理システムやプラグインのみを更新しても、基盤となる欠陥は修正されません。これらの脆弱性はCVE-2026-109618およびCVE-2026-109619として追跡されており、両方ともクリティカルと評価され、CVSS 4.0スコアは9.2です。

CVE-2026-109618は、メモリ不足エラー処理中のメモリ破損に関するもので、クリーンアップが部分的に初期化されたリクエストデータを使用する際に発生します。CVE-2026-109619は、古いグローバル状態に関するもので、PHPワーカーが前のリクエスト後に解放されたメモリへの参照にアクセスします。両方の問題はリモートコード実行(RCE)につながる可能性があり、攻撃者が影響を受けるサーバー上で悪意のあるコマンドやプログラムを実行し、アプリケーションを侵害したり、機密データを露出させたり、サービスを中断させたりする可能性があります。

公開インターネットスキャンは、潜在的な露出の規模を示しています。2026年10月22日のスナップショットにおいて、CensysのPHP2Shellダッシュボードは、影響を受ける可能性のあるPHPバージョンを報告しているインターネットに面したサービスを約3,670万件特定しました。これらはサービス数であり、一意のサーバーや組織ではありません。また、バージョンベースの推定値には、ベンダーのバックポートによってすでにパッチが適用されたインストールが含まれている可能性があります。組織は、この情報を使用して対応を決定する一方で、自組織のデプロイメントの実際の露出状況とパッチステータスを確認する必要があります。

PHPプロジェクトは、PHP-FPM、Apache with mod_php、php-cgi、FrankenPHP、LiteSpeedを含む、Webリクエストを処理するすべてのPHPインストールがリスクにさらされていると特定しています。リサーチャーがアプリケーションコードの前に実行される攻撃を実証したため、mod_phpが最も高いリスクであると特定しています。したがって、アプリケーション認証では悪用を防げない可能性があります。コード実行が成功すると、影響を受けるプロセスの権限で実行され、アプリケーションのシークレット、クレデンシャル、または接続されたリソースが露出する可能性があります。

修正プログラムのデプロイ中の露出の削減

PHPプロジェクトは、2026年10月21日にセキュリティアップデートをリリースしました。修正されたアップストリームリリースは、PHP 8.2.35、8.3.36、8.4.27、および8.5.12です。ディストリビューションまたはアプリケーションベンダーのパッケージを使用している組織は、ベンダーがアップストリームのバージョン番号を採用せずにセキュリティ変更をバックポートする可能性があるため、どのパッケージに修正が含まれているかを確認する必要があります。

PHP 8.1以前は、PHPプロジェクトから標準のセキュリティリリースを受け取らなくなりました。これらの拠点を使用している組織は、ベンダーがサポートされているバックポートを提供しているか、サポートされているバージョンへのアップグレードを提供しているかを確認する必要があります。PHPプロジェクトは、選択された古い拠点に対して限定的なソースバックポートも提供していますが、これには適切なビルドとデプロイメントの専門知識が必要です。

修復に必要な時間は、アプリケーションの依存関係とプロバイダーの準備状況によって異なります。影響を受ける各サービスに担当者と修復タイムラインを割り当て、検証が完了するまで暫定的な管理策を有効にしておく必要があります。セキュリティチームとアプリケーションチームは、以下のアクションを調整する必要があります。

1. 影響を受けるデプロイメントの特定:

・外部攻撃対象領域管理(EASM)を使用して、インターネットに面した資産の検出を支援します。既存のインベントリから欠落しているものを含め、露出している可能性のあるPHPサービスを優先します。
・各デプロイメントのアクティブなPHPバージョン、デプロイメントモデル、アプリケーション所有者、およびパッチステータスを確認して記録します。
・コンテナ、マネージドホスティング、およびPHPをバンドルするサードパーティアプリケーションを含めます
・これらの環境を担当するプロバイダーと修復計画を確認します。

2. アップデートのテストとデプロイ:

・重要なアプリケーションワークフローと依存関係に対してPHPアップデートをテストします
・適切にパッチが適用されたPHPランタイムまたはベンダー提供のパッケージをデプロイします
・必要に応じて、影響を受けるPHPワーカーとコンテナを再起動または置き換えます
・実行中のWebサービスがパッチ適用済みのランタイムを使用していること、および古いワーカープロセスが停止していることを確認します(パッケージアップデートの完了だけでは、修正がアクティブであることを確認できません)

3. 暫定的な管理策の適用: PHPアップデートの準備とデプロイ中:

・関連する仮想パッチ(以下の仮想パッチセクションを参照)、侵入防止システム(IPS)保護、およびWebアプリケーションファイアウォール保護を有効にします
・デプロイメントに適した一時的な設定措置についてPHPアドバイザリを確認します
・インターネットに面している必要のないシステムをVPNまたはSASEの背後に配置して、露出を削減します。
・実用的な場合は、影響を受けるサービスへのアクセスを制限します
・これらの措置で露出を適切に管理できない場合は、パッチが適用されるまで影響を受けるサービスを一時的に隔離することを検討します

4. 潜在的な侵害の調査:

・疑わしいWebリクエスト、予期しないPHPワーカーのクラッシュ、説明のつかないプロセス実行、変更されたアプリケーションファイル、および異常なアウトバウンド接続を確認してください
・侵害が疑われる場合は、証拠を保全し、永続化メカニズムと露出したクレデンシャルを調査してください。

注意:修正プログラムをインストールしても、すでにアクセスを取得した攻撃者を削除することはできません

一時的な設定変更は、特定の攻撃経路のみに対処することに注意してください。たとえば、セッションアップロードの進行状況を無効にすると、CVE-2026-109619の確認されたセッション関連経路への露出を減らすことができますが、すべての亜種をカバーするわけではありません。PHPプロジェクトは、更新が完全な解決策であると述べています。単一の設定やトラフィックルールを包括的な修正として扱うのではなく、現在の勧告に従ってください。

FortiGuard Labsの仮想パッチがどのように役立つか

FortiGuard Labsは、ゼロデイ脆弱性のディスカバリを含む20年間の脆弱性調査と不正侵入防止の経験をこの対応にもたらします。当社の確立されたプロセスは、脆弱性分析、シグネチャ開発、品質とパフォーマンスの検証、配布、および継続的な監視にわたります。リサーチャーは、脆弱性がどのように悪用される可能性があるかを調査し、関連するトラフィックの検出ロジックを作成し、その後、誤検知を最小限に抑えるために、正確性、パフォーマンス、および正当なアクティビティへの影響について保護をテストします。新しい情報が利用可能になると、保護は更新されます。

仮想パッチは、ネットワークインスペクションを使用して、既知の悪用技術が脆弱なシステムに到達する前に識別してブロックします。これにより、アプリケーションコードを変更することなく露出を減らし、チームがPHP更新をテストして必要な運用作業を完了する時間を確保できます。

PHP2Shellについて、FortiGuard Labsは、OT以外の脆弱性もカバーするOT仮想パッチフィードを通じて、パッケージ37.316で仮想パッチを最初にリリースしました。FortiGuard Labsはその後、IPSシグネチャをリリースし、適切に設定されたIPSポリシーと併用することで追加の検出と保護を提供しています。 シグネチャ名とIDは次のとおりです:

シグネチャID シグネチャ名 脆弱性
62657 PHP.longjmp.Remote.Code.Execution CVE-2026-109618
62658 PHP.stale.global.state.Remote.Code.Execution CVE-2026-109619

FortiGuard Labsを通じて提供されるフォーティネットのOT仮想パッチフィードは、外部システムを保護するものであり、フォーティネットアプライアンス自体のローカルイン仮想パッチとは異なります。これらの保護を適用するには、配送チャネル、必要なエンタイトルメント、およびFortiOSリリースでサポートされている設定を確認し、各PHPサービスに対して関連するポリシーが有効になっていることを確認する必要があります。この検証は、シグネチャの可用性だけでは保護がアクティブであることを意味しないため、不可欠です。

保護を運用するために、管理者は次のことを行う必要があります:

・FortiGateシグネチャデータベースを更新し、選択した配送チャネルを通じてPHP2Shell保護が利用可能であることを確認する
・IPSデプロイメントの場合、PHPサーバーへのトラフィックを伝送するポリシーに関連付けられたIPSセンサーに関連するシグネチャを含める
・フォーティネットのOT仮想パッチフィードを使用するには、アクティブなFortiGuard OTセキュリティサービスサブスクリプションがあることを確認してください。このサービスは個別にライセンスされており、標準のUnified Threat Protection(UTP)バンドルには含まれていません
・ブロックアクションが有効になっていることを確認し、ログを有効にする
ターゲット仮想パッチの場合、エンタイトルメント、サーバー識別、および脆弱性マッピングを確認し、関連するトラフィックポリシーで該当するプロファイルを有効にする
・デプロイされたFortiOSリリースの設定ガイダンスに従ってください
・リクエストがインスペクションポイントに到達し、デプロイメントが関連コンテンツをインスペクションできることを確認してください(HTTPSトラフィックには、適切な復号化またはTLS終端後のインスペクションが必要です)
・検出イベントと正当なアプリケーションの動作を確認し、予期しない一致を調査し、追加のガイダンスが利用可能になったら保護を最新の状態に保ってください

この保護は、アプリケーション所有者が本番要件を管理する間、PHP修復作業をサポートします。FortiGuard Labsの調査と保護アップデートは、セキュリティチームが既知の攻撃手法に対応するのを支援し、検出イベントは調査のための追加情報を提供します。お客様は、恒久的なPHP修正のデプロイメントと検証を継続する必要があります。

結論

PHP2Shellへの対処には、ビジネスクリティカルなアプリケーションの更新に伴う運用上の要求を考慮しながら、即座の露出を減災するための協調的な対応が必要です。組織は、影響を受けるランタイムを特定し、適切なセキュリティアップデートをインストールし、パッチが適用されたコードが影響を受けるすべてのサービスで実行されていることを確認する必要があります。

FortiGuard Labsの仮想パッチ、IPS保護、および脆弱性ガイダンスは、修復が進行中の間、リスクを軽減するのに役立ちます。これらの制御により、アプリケーション所有者はアップデートをテストおよびデプロイする時間を得ることができ、検出イベントは調査をサポートします。恒久的な修正が検証され、以前の侵害の証拠が調査されるまで、対応を継続する必要があります。

FortiGuard Labsは、グローバルテレメトリネットワークを通じて、実際のPHP2Shell活動を綿密に監視しています。状況が進展するにつれて、チームは観察された攻撃活動と新たな攻撃パターンに関する最新情報を、お客様が露出を評価し適切な保護を維持するのに役立つガイダンスとともに共有します。
 
現在の保護情報と減災ガイダンスについては、FortiGuard Labs PHP2Shell脅威シグナルレポートを確認してください。また、FortiOS仮想パッチについて学び、設定例を参照することもできます。

よくある質問

PHP2Shellとは何ですか?
PHP2Shellは、PHPランタイムにおける2つのクリティカルな脆弱性、CVE-2026-109618およびCVE-2026-109619を指します。どちらも、影響を受けるサーバー上で認証されていないリモートコード実行を可能にし、機密情報を露出させたり、サービスを中断させたりする可能性があります。

誰が対応する必要がありますか?
Webリクエストを処理するPHPインストールを実行している組織は、コンテンツ管理システム、商用アプリケーション、コンテナ、およびホスティングサービスで使用されるPHPを含め、露出を評価する必要があります。Webサイトプラットフォームまたはプラグインのみを更新しても、基盤となるPHPランタイムには対処できません。

アプリケーションがPHPを使用しているかどうかを知るにはどうすればよいですか?
PHPはバックグラウンドで実行されている可能性があるため、ITチーム、アプリケーションベンダー、またはホスティングプロバイダーに、それらのアプリケーションがPHPに依存しているかどうかを尋ねてください。WordPress、Drupal、Joomla、Magentoなどのプラットフォームは、PHPを使用しています。WordPressサイトを管理している場合、ツール>サイトヘルス>情報>サーバーでPHPバージョンを確認できます。プロバイダーは、誰がランタイムを管理しているか、およびセキュリティアップデートが適用されているかどうかを確認できます。

どのPHPバージョンに修正が含まれていますか?
修正されたアップストリームリリースは、PHP 8.2.35、8.3.36、8.4.27、および8.5.12です。ディストリビューションおよびアプリケーションベンダーは、異なるバージョン番号でバックポートされた修正を提供する場合があります。お客様は、デプロイメントを担当するベンダーに、適切なパッチ適用済みパッケージを確認する必要があります。

仮想パッチはPHPセキュリティアップデートに代わるものですか?
いいえ。仮想パッチは、チームが恒久的なアップデートを準備する間、既知の攻撃手法に対する暫定的な保護を提供しますが、PHPランタイムを修復したり、すべての可能な攻撃経路をカバーしたりするものではありません。これにより、組織はPHP修正のテスト、デプロイ、および検証を継続する時間を得ることができます。

フォーティネットのお客様はPHP2Shell保護をどのように有効にすべきですか?
お客様は、関連するシグネチャデータベースを更新し、PHP2Shell保護が有効になっていることを確認し、影響を受けるサーバーへのトラフィックを伝送するポリシーに適切なIPSセンサーまたは仮想パッチプロファイルを適用する必要があります。次に、デプロイされたFortiOSリリースのブロッキングアクション、ロギング、エンタイトルメント、およびインスペクションカバレッジを検証する必要があります。

私のフォーティネット製品は影響を受けますか?
お客様は、製品の完全なリストと最新の更新情報について、フォーティネットのPSIRTアドバイザリを確認する必要があります。

■関連サイト

本記事はアフィリエイトプログラムによる収益を得ている場合があります