PHP2Shell:PHP の重大なリモートコード実行 – 今すぐパッチを適用
PHP2Shell:PHP における重大なリモートコード実行脆弱性(CVE-2026-109618 および CVE-2026-109619)
2026年10月20日、PHP セキュリティコミュニティは PHP2Shell を公表しました。これは CVE-2026-109618 と CVE-2026-109619 として追跡される、影響の大きい一対の脆弱性です。どちらも PHP 5.4 から 8.5.11 までのバージョンに影響し、認証不要のリモートコード実行を可能にします。PHP のメンテナーは CVSS v4.0 に基づき 10 点中 9.2 点と評価し、重大な範囲に分類しました。PHP は世界のウェブサイトの約 70~80% を支えているため、この公表はホスティング事業者、代理店、電子商取引事業者、そして PHP ベースのサイトを運営するすべての人に直ちに影響します。
2 つの CVE が実際に何をするか
CVE-2026-109618 はメモリ不足処理の欠陥です。PHP がメモリ不足の状態に陥ると、longjmp を使って現在のリクエストを中断します。一部の実行パスはこの突然の終了を考慮していないため、リクエストのメモリが部分的に初期化されたまま残ります。クリーンアップ時に、エンジンはこの無効なメモリを有効なデータとして扱います。攻撃者はその後、実行フローに影響を与え、サーバー上で任意のコードを実行できます。
CVE-2026-109619 は古いグローバル状態の欠陥です。PHP はリクエストメモリを一時的に指すグローバル変数を保持します。特定の状況では、このグローバル状態が正しくリセットされず、解放後に再び埋められます。その結果、アクティブなリクエストに属さなくなったメモリブロックを参照します。後続の操作が、適切に初期化される前にこの古い状態を読み取ったり分岐したりするため、再びリモートコード実行の扉が開きます。
平たく言えば、PHP はほとんどの動的ウェブサイトを構築して実行するエンジンです。これらのバグは、エンジンが作業領域を管理し、一時データを破棄する方法の欠陥のようなものです。外部の者は、エンジンのメモリ処理を圧倒したり混乱させたりするように細工されたリクエストを送信できます。エンジンがつまずくと、攻撃者はその混乱を、ログインやパスワードを必要とせずにウェブサーバー上で実行されるコマンドに変えることができます。
リスクが緊急である理由
攻撃が成功すると、ウェブサーバーのワーカーアカウントの権限でコード実行が可能になります。このアクセスは、悪意のあるペイロードをインストールする、悪意のあるスクリプトを通常のウェブサイトファイルに偽装する、ウェブ活動を減少させる、ユーザーごとに異なるトラフィックを見せる、決済時に入力されたカードデータを盗み見る、またはマルウェアをインストールさせるために訪問者にコマンドの確認を求めるために使用できます。これらの行動の多くは、通常のユーザーだけでなくサイト管理者にも見えません。サイトは健全に見えても、静かに悪意のあるコンテンツを配信したりデータを漏えいしたりしている可能性があります。
パッチが完全に利用可能になる前に、実際の環境で悪用の試みが検出されました。そのため PHP2Shell は、日常的なメンテナンス作業ではなく、今すぐ修正すべきインシデントです。遅れが 1 時間増えるごとに、自動化されたスキャナーが露出したインストールを見つける可能性が高まります。
修正版と取るべき措置
PHP のメンテナーは 2026年10月21日、サポート対象ブランチ向けの緊急アップデートを公開しました。修正版は PHP 8.2.35、8.3.36、8.4.27、8.5.12 です。PHP 7.4、8.0、8.1 向けにもソースコードパッチが公開されましたが、これらのブランチはサポート終了であり、公式の更新済みバイナリは提供されていません。まだこれらを実行しているサイトは、直ちにサポート対象バージョンへ移行するか、信頼できる長期サポート提供者を利用する必要があります。
PHP2Shell:修正版
| PHP ブランチ | 修正版 | サポート状況 |
|---|---|---|
| 8.2 | 8.2.35 | サポート対象 |
| 8.3 | 8.3.36 | サポート対象 |
| 8.4 | 8.4.27 | サポート対象 |
| 8.5 | 8.5.12 | サポート対象 |
| 7.4 | ソースコードパッチのみ | サポート終了 |
| 8.0 | ソースコードパッチのみ | サポート終了 |
| 8.1 | ソースコードパッチのみ | サポート終了 |
管理者は PHP を更新し、PHP-FPM または該当するワーカープロセスを再起動し、実行中のバージョンが修正版と一致することを確認する必要があります。サイトを管理しているがサーバー管理者ではない場合は、今すぐホスティング事業者または管理者に連絡し、PHP2Shell の確認を依頼してください。迅速な確認では、PHP のバージョン、ウェブサーバー設定、最近のファイル変更、予期しないスケジュールされたタスク、外向き接続を対象にすべきです。目に見える症状を待たないでください。感染した PHP サイトは、攻撃者が内部で活動している間も完全に機能し続けることがあります。
技術チームにとっての優先事項は、コンテナ、ステージング環境、忘れられたサブドメインを含むすべての PHP ランタイムにパッチを適用することです。不審な POST リクエスト、メモリ関連のエラー、予期しない子プロセスについてログを確認してください。侵害が疑われる場合は秘密情報をローテーションしてください。非技術者の読者へのメッセージは簡単です。管理者に PHP のバージョンを確認し、緊急アップデートを適用するよう依頼してください。PHP2Shell は重大で、公開されており、実際に危険です。
オンラインストア、ブログ、顧客ポータルを運営している場合は、PHP のバージョンが修正済みであることが確認されるまで、これをセキュリティインシデントとして扱ってください。バージョンと再起動時刻について書面による確認を求めてください。バックアップをオフラインで保管し、予期しない管理者アカウントを監視し、決済ページに変更がないか確認してください。迅速な更新のコストは、カードデータの盗難、改ざん、マルウェア配布キャンペーンのコストに比べれば小さなものです。
一緒に取り組みましょう
さらに詳しい情報やプロジェクトのヘルプ、またはアイデアの構築が必要ですか?
簡単な質問でもフルプロジェクトでも、お気軽にどうぞ。お問い合わせいただき、あなたのアイデアを一緒に実現しましょう。
お問い合わせ →