はじめに
2026年10月21日にプログラム言語PHPに重大な脆弱性があると報道されました。
PHPは多くのWebサイトやWebアプリケーションで使用されており、LaravelやWordPressなどの実行環境としても広く利用されています。
今回の脆弱性では、外部からの攻撃によってサーバー上で任意のコードが実行される可能性が指摘されています。
※本記事は2026年10月21日時点の情報をもとに作成しています。
今回の何が危険なのか
今回の大きな問題は、認証されていない外部の攻撃者が、サーバー上で任意のコードを実行できる可能性があるとのことです。
これはRCE(Remote Code Execution:リモートコード実行)と呼ばれます。
攻撃者が脆弱性を悪用すると、認証なしでサーバー上のコードを実行できる可能性があります。ただし、実行可能な操作はPHPプロセスの権限やサーバーの設定によって異なります。
研究者による検証では、脆弱性を悪用したリモートコード実行が実証されています。ただし、実際の攻撃成立条件はサーバーの構成や設定によって異なります。
想定される被害
- サーバー上のファイルの削除・改ざん
- データベースの接続情報や個人情報の漏えい
- 不正プログラムの配置
- Webサイトの改ざん・不正なページへの誘導
...etc
※実際の被害はPHPプロセスの権限やサーバー構成によって異なります。
CVSSとは
CVSS(Common Vulnerability Scoring System:共通脆弱性評価システム)は、コンピュータシステムやソフトウェアに存在するセキュリティ上の脆弱性の深刻度を客観的に数値化し、評価するための国際的なオープン標準フレームワークです。
スコアは0.0~10.0に渡るとのこと。
今回は9.2なので、かなり緊急度が高いものだということが画像からもわかります。
| 深刻度 (Severity) | スコア範囲 | 影響・対応の目安 |
|---|---|---|
| Critical (緊急) | 9.0 〜 10.0 | 特権奪取やリモートでのコード実行が可能など、極めて危険。直ちに対策が必要。 |
| High (重要) | 7.0 〜 8.9 | 条件が揃えばシステム全体に甚大な影響を与える。早急な対応が推奨される。 |
| Medium (警告) | 4.0 〜 6.9 | 一定の制約下(ユーザー操作が必要など)で発生するリスク。計画的な対処が必要。 |
| Low (低) | 0.1 〜 3.9 | 攻撃に必要な条件が厳しい、または影響範囲が限定的なもの。 |
| None (なし) | 0.0 | 脆弱性による直接的なリスクが存在しない状態。 |
打てる対策
- 使用しているサービスや環境にもよりますが、最新のバージョンに更新をすること。(公式サイトでもバージョンの更新が強く推奨されています。)
- 公開される修正パッチが用意されるまで外部アクセスの制限や一時的にサービスの停止(PHP 8.1以前は公式サポートが終了しているため、今回の修正版は提供されていません。古いバージョンを利用している場合は、サポート対象のPHPへの移行を検討する必要があります。)
- すぐにバージョンのアップデートなどが難しいのであれば、つなぎで
session.upload_progress.enabled = 0にする(完全に防げるわけではないため注意が必要で、公式はバージョンアップを推奨)
PHPバージョンの確認方法
# PHPのバージョンを確認
php -v
# Docker環境の場合
docker compose exec app php -v
# 設定ファイルの確認
php --ini
# アップロード進捗機能の設定確認
php -i | grep session.upload_progress.enabled
2026年10月21日に、PHP公式から脆弱性を修正したバージョンが公開されました。
| PHP系統 | 修正版 |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
現在使用しているPHPのバージョンを確認し、該当する修正版へのアップデートを推奨します。
なお、PHP 8.1以前は公式のセキュリティサポートが終了しているため、サポート対象のバージョンへの移行が必要です。
対応項目
- PHPを使っている環境の洗い出し
- 本番環境で使用しているPHPのバージョンを確認
- バージョンアップの手順を確認
- アクセスログ・エラーログに不審な挙動がないか確認
- 修正版PHPへのアップデートを実施
- アップデート後のアプリケーションの動作確認
- 必要に応じてPHP-FPMなどのプロセスを再起動
今回の原因
主に以下二つの原因
- CVE-2026-109618:メモリ不足(OOM)時の処理不備により、メモリの状態が不正になる問題
- CVE-2026-109619:過去のリクエストに関連するメモリ状態が適切に初期化されず、解放済みメモリを参照してしまう問題
また、PHPにはファイルアップロードの進捗を記録するsession.upload_progressという機能があります。
この機能は初期設定で有効になっており、今回の脆弱性の一部と関係しています。
重要なのは、LaravelやWordPressそのものの脆弱性ではなく、これらが動作するPHPの実行環境に問題がある点です。
そのため、LaravelやWordPressを最新版に更新するだけでは根本的な対策になりません。
PHP本体のセキュリティアップデートが必要とされています。
最後に
PHPは記事にもある様に、使用率が高い言語の一つですし、今回の事象の影響範囲はかなり大きいと言われています。
今回の脆弱性を通じて、アプリケーションの実装だけでなく、その実行環境のセキュリティにも注意を払う必要があると感じました。
また、2段階認証の導入やパスワードの使い回し防止なども、日頃から取り組むべきセキュリティ対策です。ただし、これらは今回の脆弱性そのものを防ぐものではありません。
今後もエンジニアとしてセキュリティに関する知識を深め、脆弱性情報にアンテナを張りながら、安全なサービス開発・運用を意識していきたいと思います。
参考文献

