PHP 8.1以前(5系・7系を含む)には、2026年10月21日の重大な脆弱性の修正版が開発元から出ません。ただ、有志が修正を当てたDockerイメージを公開しており、PHP 5.6〜8.1ならそれに載せ替えるのが、いちばん早い応急処置です。非公式で、守れるのは今回の2件だけなので、サポート中のバージョンへ上げる計画とセットで使ってください。
うちのシステムはPHP 5.6で動いている。ニュースでは「すぐ更新を」と言っているけれど、5系の修正版なんて出ないはず。いきなりバージョンを上げるのは無理だし、何か手はないのだろうか。
2026年10月21日に何が起きたのか
2026年10月21日、PHPの開発元が、ログインなしで外部からプログラムを実行されるおそれがある脆弱性2件(CVE-2026-109618・CVE-2026-109619、深刻度はCVSS v4.0で9.2)を修正したと発表しました(出典: PHP公式 Security advisory、2026年10月21日)。Webのリクエストを受けているPHPは、PHP-FPM・Apacheのmod_php・php-cgiなど、動かし方を問わず対象です。
修正版は PHP 8.5.12・8.4.27・8.3.36・8.2.35 です。開発元は「完全な回避策はなく、更新することだけが安全な選択」としています。バージョンごとのサポート終了日と、修正済みの番号の見方はPHPサポート終了日カレンダーにまとめています。
PHP 8.1以前や5系に、今回の修正版は出るのか?
開発元からは出ません。PHP 8.1以前はすでにサポートが終わっているため、8.1.xx や 5.6.xx のような新しい番号は公開されません(出典: PHP公式 Security advisory、2026年10月21日)。
ただし、手がまったく無いわけではありません。
- 開発元の最小限の修正(PHP 7.4・8.0・8.1): 事の重大さから、開発元は、自分でPHPを組み立てる人のための最小限の修正を公開しました。
- 有志による修正(PHP 5.4〜7.3): 開発元の修正を、有志がさらに古いバージョンへ移したものが公開されています。開発元の確認は受けていません。
- サーバーやOSの提供元の修正: 一部のLinuxの配布元や、サポート終了後も修正を提供する事業者が、独自に修正を配っている場合があります。
修正そのものはあっても、PHPを自分で組み立て直すのは手間も危険も大きい作業です。そこで使えるのが、修正をすでに当てたDockerイメージです。
修正済みのDockerイメージとは
Dockerとは、アプリと、それを動かすのに必要なもの(PHP本体や拡張機能など)をひとまとめにして、サーバーのOSから切り離して動かす仕組みです。ひとまとめにしたものを「イメージ」と呼びます。
今回の脆弱性では、有志が、サポートの終わったPHPに修正を当てたイメージを公開しています。システムをこのイメージの上で動かすように載せ替えれば、PHPを自分で組み立てなくても、修正の入ったPHPで動かせます。
バージョンごとの状況(2026年11月1日時点)
| バージョン | 修正と、修正済みのイメージ |
|---|---|
| 8.1・8.0・7.4 | 開発元の最小限の修正。イメージあり(mpyw、frugan/php-legacy など) |
| 7.3〜7.0 | 有志による修正。イメージあり(mpyw は 7.0〜7.3、frugan/php-legacy は 7.1〜7.3) |
| 5.6 | 有志による修正。イメージあり(frugan/php-legacy) |
| 5.5・5.4 | 有志による修正だけ。イメージは見当たらない(修正を当てて自分で組み立てる) |
出典: 各プロジェクトの公開ページ(GitHub mpyw/php-eol-CVE-2026-109618-109619、Docker Hub frugan/php-legacy、GitHub vperetti/php-cve-2026-109618-109619-backports、GitHub Anton-Barinov/php2shell-patches。2026年11月1日確認)。どれも開発元の公式なものではありません。
Dockerの公式イメージを取り直すだけでは、修正は入らない
Dockerには、PHPの公式イメージ(php:8.1 など)もあります。ただし公式イメージが修正版を出しているのは、サポート中の PHP 8.2〜8.5 です。php:8.1 や php:5.6 を取り直しても、今回の修正は入りません。サポートの終わったバージョンなら、修正を当てた有志のイメージを選ぶ必要があります。
載せ替えの流れ
- 今の環境を書き出す: PHPのバージョン、使っている拡張機能、php.ini の設定、Webサーバーの種類(Apache・PHP-FPMなど)を一覧にします。
- 合うイメージを選ぶ: バージョンと動かし方(fpm・apache・cli)が合うものを選び、足りない拡張機能や設定を足します。番号が変わらない固定のタグを使い、勝手に中身が入れ替わらないようにします。
- 検証環境で動作を確かめる: 主な画面と、帳票・メール送信・ファイルのアップロード・外部との連携など、止まると困る処理を一通り動かします。
- 本番を切り替える: 切り替えの手順と、前の状態に戻す手順を先に決めてから入れ替えます。
PHP 8.1以前や5系で動いているシステムがある方へ
修正済みのイメージへの載せ替えで足りるか、先にバージョンを上げたほうがよいかを、ソースコードを拝見して現状調査(無料)でお答えします。調査の前に秘密保持契約を結びます。
修正済みのイメージを使う前に知っておきたい注意点
修正済みのイメージは、今回の脆弱性への時間稼ぎです。次の点を理解したうえで選んでください。
- 非公式で、効いていることの証明もない: どのイメージも有志によるもので、PHPの開発元は確認していません。公開している側も「脆弱性が閉じたことは証明できない」と書いています。
- 守れるのは今回の2件だけ: サポート終了後に見つかったほかの問題や、これから見つかる問題には対応しません。古いバージョンでは、暗号の部品(OpenSSL)なども更新が止まっています。
- 提供している人を信頼して使うことになる: 中身を確かめ、固定のタグで使ってください。
- 動きが少し変わることがある: たとえば frugan/php-legacy では、メモリの上限を超えた処理がエラー(502)で止まるようになり、アップロードの進み具合を出す機能が無効になっています。重い処理やアップロードがあるシステムは、検証環境で必ず確かめてください。
- 共用のレンタルサーバーでは基本的に使えない: Dockerを動かすには、VPSやクラウドのサーバーのように、サーバーを自分で管理できる環境が必要です。
どの方法を選べばよいか
結論から言うと、サーバーやOSの提供元が修正を出しているならそれを使い、出ていなければ修正済みのイメージへの載せ替えで応急処置をしたうえで、サポート中のバージョンへ上げる計画を立てるのが現実的です。
- 提供元の修正を使う: 使っているOSやサーバーの提供元が修正を出している場合。提供元ごとに対応が違うので、お知らせを確認します。
- 修正済みのDockerイメージに載せ替える: PHP 5.6〜8.1で、すぐにはバージョンを上げられない場合。非公式で、守れるのは今回の2件だけ。VPSやクラウドのサーバーが必要です。
- サポート中のバージョンへ上げる: システムを今後も使い続ける場合。書き方の直しが必要で、期間と費用がかかります。
バージョンを上げる場合の費用の考え方はPHPバージョンアップの費用はいくらかで詳しく説明しています。
FUNBREWにご相談いただける場合
FUNBREWのPHPレスキューでは、古いPHPで動いているシステムの対応を、金額を先に決めた定額のパックでお受けしています。脆弱性への応急処置は30万円のパック、PHPを上げるなら100万円のパックからです。
修正済みのイメージへの載せ替えがその範囲に収まるか、それとも先にバージョンを上げたほうがよいかは、ソースコードを拝見したうえで、現状調査(無料)でお答えします。調査の前に秘密保持契約を結びます。
まとめ
- 2026年10月21日の重大な脆弱性について、PHP 8.1以前(5系・7系を含む)には開発元からの修正版が出ない
- 有志が修正を当てたDockerイメージがあり、PHP 5.6〜8.1ならそれに載せ替えられる(5.4・5.5は修正のみ)
- どれも非公式で、守れるのは今回の2件だけ。共用のレンタルサーバーでは基本的に使えない
- 載せ替えのあとは、サポート中のバージョンへ上げる計画を立てる
この記事をシェア