Language

By TPS People

深刻なPHP脆弱性:すぐに更新できないシステムはどうする?

2026年10月21日、PHPプロジェクトは深刻度の高い2件の脆弱性の修正を公開しました。サポート中のバージョンを利用しているシステムは、修正をそのまま適用できます。

一方、5〜10年前に構築された業務システムに多い古いバージョンでは、別の対応方針が必要です。本記事では、公開された内容、確認したいポイント、アップグレードと再構築の選び方を整理します。

10月21日に公開された内容

今回のリリースでは、CVE-2026-109618とCVE-2026-109619が修正されました。いずれもCVSS v4.0で9.2(緊急)と評価されており、条件によっては認証なしでサーバー上のコードを実行される可能性があります。

修正版は8.5.12、8.4.27、8.3.36、8.2.35です。

国内では、IPAと国家サイバー統括室が、PHPの利用箇所の把握と速やかな修正の適用を呼びかけました。10月21日には、複数のオンラインサービスが緊急メンテナンスを実施しています。

PHPブランチ別の修正状況

ブランチ 10月21日リリースでの修正 セキュリティサポート終了
8.58.5.12で修正済み2029年12月31日
8.48.4.27で修正済み2028年12月31日
8.38.3.36で修正済み2027年12月31日
8.28.2.35で修正済み2026年12月31日
8.1限定的なソースバックポートのみ終了(2025年12月31日)
8.0限定的なソースバックポートのみ終了(2023年11月26日)
7.4限定的なソースバックポートのみ終了(2022年11月28日)
7.3以前、5.x修正の公開なし終了(2018〜2021年)

Linuxディストリビューションによっては、古いバージョン番号のまま修正を取り込んだパッケージ(バックポート)が提供される場合があります。ご利用中のディストリビューションやホスティング事業者のアドバイザリ(公式の告知)をご確認ください。

確認したい4つのポイント

  • PHPのバージョン:8.2〜8.5には修正版があります。7.4〜8.1は限定的なソースバックポートのみで、7.3以前は修正が公開されていません。
  • PHPの実行方式:Apacheのmod_php、PHP-FPM、CGIでは、攻撃が成立する条件が異なります。Apacheのmod_phpは、最も優先して対応すべき構成とされています。
  • 修正が実際に有効か:php -vで表示されるPHPと、Webリクエストを処理しているPHPが異なる場合があります。修正の適用後は、ワーカー(処理プロセス)の再起動が必要です。
  • サポート終了日:PHP 8.2のサポートは2026年12月31日に終了します。今8.2へ移行したシステムは、近いうちに再度のアップグレードが必要になります。

古いPHPシステムのアップグレードが難しい理由

  • フレームワークやプラグインが新しいPHPに対応していない:古いバージョンのフレームワーク、ECパッケージ、プラグインは、新しいPHPでは動作しなくなります。旧mysql_*関数など、PHPから削除された関数を使うコードは書き換えが必要です。
  • 開発当時の担当者がいない:コードを安全に変更できるほど内容を把握している担当者が、身近にいません。
  • 最新の仕様書がない:最新の資料がないため、システムが本来どう動くべきかが分からず、アップグレード後のテスト範囲を決められません。

アップグレードか再構築か:判断の目安

どちらの方法でも、サポートが終了したPHPへの依存は解消できます。どちらが適しているかは、コードの状態と今後の事業計画によって変わります。

アップグレードが向いているケース 再構築が向いているケース
フレームワークに、新しいPHPに対応したサポート版があるフレームワークやECパッケージに、アップグレードの道筋がない
コードが現在も保守されており、内容をある程度把握できている仕様書がない、または内容が古い
システムの機能が、現在の業務に合っている構築当時から業務プロセスが変わっている
テスト、またはテスト手順がある次のサポート終了時に、同じ問題が繰り返される

TPSのご支援内容

1. 現状確認

PHPのバージョン、実行方式、フレームワークとプラグイン、10月21日の修正が有効かを確認します。アップグレードの阻害要因と、推奨する次のステップをまとめた簡潔なレポートをお渡しします。

2. バージョンアップ

8.2のサポート終了日を踏まえ、8.3以降のサポート対象ブランチへ移行します。互換性のないコードを修正し、回帰テスト(既存機能に影響がないかの確認)を行います。

国内のプラットフォームでは、3つの本番システムから38の業務フローを復元し、657の作業ステップをソースコードと対応づけた実績があります(事例・英語)。

現状確認の対象は、バージョン、設定、アップグレードの実現可能性です。ペネトレーションテスト(侵入テスト)は含まれないため、専門のセキュリティ事業者へのご依頼をおすすめします。現在の開発ベンダー様と並行して進めることも可能です。

どの方法がシステムに合うか、迷われていませんか?

PHPのバージョンとシステムの種類を、分かる範囲でお知らせください。現状確認の進め方について、TPSよりメールでご連絡します。コードや設定ファイルをご共有いただく前に、NDA(秘密保持契約)を締結することも可能です。

TPSは、ISO/IEC 27001:2022に沿った情報セキュリティマネジメントシステム(ISMS)を運用しています(詳しくはこちら・英語)。

よくあるご質問

1. 10月21日の修正を適用すれば十分ですか?

8.2〜8.5のシステムでは、修正を適用し、そのバージョンが実際にWebリクエストを処理していることを確認すれば、今回の2件の脆弱性への対応となります。ただし8.2のシステムは、2026年12月31日までにアップグレードが必要です。

2. PHP 7.4、8.0、8.1のシステムはどうすればよいですか?

これらのブランチには限定的なソースバックポートが公開されており、一部のディストリビューションやサポート事業者は修正済みのビルドを提供しています。ただし通常の修正はすでに提供されていないため、サポート対象バージョンへの移行は引き続き必要です。

3. 現状確認に、サーバーへのアクセスは必要ですか?

必ずしも必要ではありません。バージョン情報の出力結果、設定ファイル、ソースコードの写しなど、お客様からご提供いただく情報から始めることができます。アクセスが必要な場合は、範囲と方法を事前に取り決めます。

4. 現在の開発ベンダーと並行して依頼できますか?

はい。運用は現在のベンダー様のご担当のまま、アップグレードやテストなど作業の一部をTPSが担うことができます。

Facebook
Twitter
LinkedIn

プロジェクトのご相談はお気軽に。