PHPの重大脆弱性修正に遅れ、古いバージョンの利用も課題に
出典: php.net

PHPで未認証の攻撃者がサーバー上でコードを実行できる重大な脆弱性が見つかり、修正版が公開されました。修正の遅れには、対応チームの人員不足と意思決定の停滞が関わり、PHP Foundationは体制の見直しを進めています。一方、PHPのインストール環境の多くはサポート終了済みのバージョンを使っており、修正を届ける側だけでなく、運用側の更新も課題です。

2件の脆弱性に修正版を公開

PHPプロジェクトは2026年10月21日、PHP 8.5.12、8.4.27、8.3.36、8.2.35を公開し、2件の重大な脆弱性を修正しました。条件がそろうと、認証されていない攻撃者がPHPサーバー上でコードを実行できる問題でした。

1件はメモリ不足時の処理に起因します。メモリ上限に達した際、初期化が不完全な内部データを後の処理が有効なものとして扱い、メモリ破壊につながる可能性がありました。もう1件は、致命的エラーの後に、前のリクエストのメモリを指す内部状態が残る問題です。

PHP Foundationによると、修正版の公開前にPHP2Shellが悪用されたとの報告はありませんでした。脆弱性情報の公開予定が前倒しされたため、修正版の公開も10月22日から21日に変更されました。配布元が更新を準備する時間を確保してから公開する判断でした。

発見から修正までに停滞

メモリ不足に関する問題の兆候は、2024年に行われた外部監査への対応中に見つかりました。PHPのセキュリティチームは複数の修正案を検討しましたが、互換性を損なう可能性やサービス妨害につながる懸念、拡張機能への変更の必要性が案ごとに異なり、判断が定まらないまま、作業は数カ月にわたり停滞と再開を繰り返しました。

2026年8月、セキュリティ企業Califから同じ根本原因を持つリモートコード実行の報告があり、OpenAIとWizからも報告が届きました。影響の全容が明らかになると、PHP Foundationのセキュリティ関連チームは修正を最優先にしました。

PHP Foundationは、遅延を意思決定の仕組みとリソース不足による構造的な失敗と位置づけています。これを受け、合意を前提とした手続きから多数決も使う方式に変更し、複雑な脆弱性への対応を早めるプロセスの整備を進めています。

限られた人員と増える報告

PHP Foundationのエグゼクティブディレクター、エリザベス・バロン氏は、常勤職員は自身1人で、主にパートタイムの契約者14人と協力していると述べました。この体制で、PHPの中核部分の開発・保守に加え、セキュリティ修正も担っています。

PHP Foundationは2026年5月にエコシステム・セキュリティチームを設け、PHPセキュリティチームとともに、報告の振り分けや調整、堅牢化を進めています。脆弱性報告の増加を受け、2026年7月以降に15件のCVEを公開し、無効、重複、再現不能と判断した100件超の報告にも対応したとしています。

AIツールは報告の検証や、同じ根本原因を持つ報告の整理に使われています。一方、修正案の選択や互換性への影響の判断、パッチのレビューはエンジニアが担います。PHP Foundationは、深いコードベースの知識を持つ技術者を増やす必要があると訴えています。

サポート終了版への対応

PHPのインストール環境の約73%はサポート終了後のバージョンで、PHP 5系を使うサイトは約7.7%でした。PHP 7系もサポート終了から年数が経過しています。

PHPは安定版の公開から最初の2年間、報告されたバグとセキュリティ問題を修正し、その後の2年間は重大なセキュリティ問題のみを対象にします。合計4年間のサポート期間を終えると、そのブランチはEOL(サポート終了)となり、修正が提供されなくなります。

PHPの公式サポート表では、8.2系のセキュリティサポートは2026年12月31日まで、8.3系は2027年12月31日まで、8.4系は2028年12月31日まで、8.5系は2029年12月31日までとされています。公開された修正を利用するには、運用環境がサポート対象のブランチにあることも重要です。