PHP2Shell 脆弱性レポート
CVE-2026-109618 および CVE-2026-109619 は、PHPのメモリ管理・エラー処理の欠陥を突かれることで、認証なしで外部の攻撃者がサーバー上で任意のコードを実行できる重大な脆弱性です。
攻撃成功時の具体的な悪影響
攻撃に成功すると、PHPを実行している Web サーバー上で攻撃者のコードが動くため、次のような深刻な被害が発生する恐れがあります。
Web サイトの改ざん
公開ページやCMSの内容を書き換え、訪問者へのマルウェア配布やフィッシング誘導を行う。
機密情報の窃取
DB接続情報、顧客・従業員情報、アップロード済みファイル、認証情報などの重要データ流出。
サーバー乗っ取り
Webシェルの設置、バックドア作成、追加攻撃の踏み台化、ランサムウェア等のマルウェア実行。
内部ネットワークへの波及
サーバーが社内網やクラウドサービスの認証情報を持つ場合、横展開攻撃(ラテラルムーブメント)へ発展。
業務停止・復旧コストの発生
不正プログラム実行、データベース破壊、原因究明や緊急停止・再構築による長期的なサービスダウンおよび多大な復旧コスト。
2件の脆弱性の違いとメカニズム
どちらも CVSS v4.0 スコア 9.2 (Critical) と評価されています。
| CVE 識別番号 | 起因 | 悪用のポイント |
|---|---|---|
| CVE-2026-109618 |
メモリ不足 (OOM) 時の エラー処理 |
リクエストデータが完全に初期化される前にエラー処理が進み、不正なメモリ状態が有効データとして扱われることで RCE(リモートコード実行) につながる。 |
| CVE-2026-109619 |
リクエスト後の 残存する内部状態 |
解放済みメモリを指す状態が残り、同一ワーカーが後続リクエストを処理する際に利用されることで RCE につながる。 Session Upload Progress 機能が攻撃経路の一つとされる |
実務上、最優先で実施すべき5項目
特に WordPress や Laravel、Symfony など PHP 製アプリを公開している場合、アプリ側の修正だけでは不十分で、PHP本体の更新が必須です。
PHPを修正版へ更新
8.2.35、8.3.36、8.4.27、8.5.12 のいずれかへ直ちにアップデートを実施してください。
PHPを利用する全環境を棚卸し
VPS、レンタルサーバー、Dockerコンテナ、WordPress、社内ツール、各種パッケージに同梱されたPHPも漏れなく確認します。
更新前の暫定対策
管理画面・API など外部公開範囲を最小化し、必要に応じて WAF の適用、IP制限、外部アクセスの遮断、一時停止を検討してください。
侵害兆候の確認 (Indicators of Compromise)
PHPワーカーからの不審なシェル起動、身に覚えのないファイル作成、外部への不審な通信、Webシェルの有無、アクセスログの急増・異常を点検します。
サポート終了バージョンの見直し
PHP 8.1 以前は本脆弱性の修正提供がなく、サポート中バージョンへの即時移行、またはサービス廃止・公開停止の判断を行う必要があります。
影響を受ける PHP のバージョン
実運用では、PHP本体だけでなくレンタルサーバー、Docker、WordPress等に含まれるPHPも確認してください。
| 系統 | 影響を受ける範囲(脆弱性あり) | 修正版(安全) | ステータス |
|---|---|---|---|
| PHP 8.2 系 | 8.2.34 以前 | 8.2.35 | パッチ提供中 |
| PHP 8.3 系 | 8.3.35 以前 | 8.3.36 | パッチ提供中 |
| PHP 8.4 系 | 8.4.26 以前 | 8.4.27 | パッチ提供中 |
| PHP 8.5 系 | 8.5.11 以前 | 8.5.12 | パッチ提供中 |
| PHP 8.1 / 7.x / 5.x | 全バージョン影響 | 提供なし (EOL) | サポート終了 |
旧バージョン(PHP 5.4以降)の重要注意事項
調査に関与した Wiz 社の情報および IPA の発表によると、PHP 5.4 以降も少なくともいずれか一方の脆弱性の影響を受けるとされています。特に PHP 8.1 以前は公式サポート終了 (EOL) のため修正プログラムは提供されません。
環境ごとのバージョン確認コマンド
サーバーにSSHでアクセスできる場合は、ターミナルからバージョンを特定します。
php -v
➔ 8.2.28 < 8.2.35 のため影響あり。8.2.35 以上へ更新が必要です。
Webで動いているPHPのバージョンはCLIと異なる場合があるため、Webサーバー側でも必ず確認します。
php-fpm -v
dpkg -l | grep php
rpm -qa | grep php
phpinfo() を配置してブラウザから確認する方法もありますが、システム内部構成などの情報漏えいにつながる恐れがあるため、確認後は直ちにファイルをサーバーから削除してください。
バージョン判定の目安
- 8.2.x: 8.2.35 以上なら修正済み
- 8.3.x: 8.3.36 以上なら修正済み
- 8.4.x: 8.4.27 以上なら修正済み
- 8.5.x: 8.5.12 以上なら修正済み
- 8.1.x / 7.x / 5.x: 修正版が提供されないため、サポート中PHPへのバージョン移行、または外部公開停止・移行を早急に検討してください。
ユーザー側で更新できないレンタルサーバーの場合
共用サーバーなど自分でPHPバイナリを更新できない環境では、コントロールパネル等の「PHP バージョン設定」や、ホスティング提供元の障害・お知らせページをご確認ください。