
- VPSや専用サーバーでLinuxの標準パッケージのPHPを使っているなら、修正版はディストリビューションの更新として届きます。PHP公式は、ディストリビューションに事前にパッチを渡したとしています[php.net]。
- Ubuntuは10月21日に修正済みパッケージを公開しました(USN-8948-1)。番号は公式の修正版(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35)とは違いますが、修正は入っています。
- Debian 13(trixie)は修正済みです。Debian 12(bookworm)は、確認した時点では修正済みの版が載っていませんでした。
- パッケージを更新したら、PHP-FPMとWebサーバーを再起動し、サイトを動かしているPHPのバージョンを確かめます。
この記事の対象
この記事は、VPS・専用サーバー・クラウドのサーバーを自社か委託先で管理していて、PHP本体を自分たちで更新する立場の方に向けたものです。共用のレンタルサーバーでは、PHP本体の更新はサーバー会社が行うのが一般的です。その場合は、サーバー会社の告知を確認してください。
2026年10月21日、PHP公式は、認証なしで外部からプログラムを実行される(RCE)おそれのある脆弱性2件(CVE-2026-109618 / CVE-2026-109619)を直した修正版を公開しました。修正版はPHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35です。PHP公式は、完全な緩和策はなく、更新だけが安全な選択だとしています[php.net]。脆弱性の中身はphp2shellの解説記事にまとめています。
まず、PHPをどこから入れたかを確かめる
修正版の届き方は、PHPをどこから入れたかで変わります。

| 入手元 | 修正版の届き方 |
|---|---|
| ディストリビューション(Ubuntu・Debianなど)の標準パッケージ | ディストリビューションが修正済みのパッケージを出す。PHP公式は、Linuxディストリビューションと長期サポートの事業者に事前にパッチを渡したとしている[php.net] |
| 外部のリポジトリ(remiなど) | リポジトリの配布元しだい。PHP公式は、ボランティアが運営する rpms.remirepo.net は10月21日には更新されないとして、ディストリビューションのパッケージかソースからのビルドに切り替えるよう求めている[php.net] |
| ソースから自分でビルド | 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 のソースでビルドし直す |
サーバーを作った担当者や委託先が分からない場合は、どのリポジトリが設定されているかを委託先に確認してください。入手元を取り違えると、ディストリビューションを更新してもPHPが古いまま残ることがあります。
ディストリビューション別の修正状況
各ディストリビューションの公式ページで確認できた内容です(2026年10月22日 0時台)。状況は変わるので、作業の前に必ず最新の告知を開いてください。

Ubuntu
Ubuntuは10月21日に、セキュリティ通知 USN-8948-1 で2件のCVEを直したパッケージを公開しました[Ubuntu]。
| リリース | ソースパッケージ | 修正済みのバージョン |
|---|---|---|
| 26.10 | php8.5 | 8.5.9-0ubuntu2.1 |
| 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 |
更新の対象として、libapache2-mod-php(Apacheのmod_php)、php-cgi、php-cli、php-fpm の各パッケージ(例:php8.3-fpm)が挙がっています。通知には「一般には、通常のシステム更新で必要な変更がすべて行われる」とあります[Ubuntu USN-8948-1]。
番号を見ると、24.04 LTS の修正済み版は「8.3.6-…」で、公式の修正版 8.3.36 とは数字が違います。Ubuntuは、リリースに収録したバージョンに修正だけを取り込んでいるためです。公式の番号と比べて判断せず、通知に載った番号と比べてください。
CVE-2026-109618 のページでは、14.04〜20.04 LTS の php5・php7.0・php7.2・php7.4 は「Needs evaluation(評価待ち)」となっていました[Ubuntu CVEページ]。これらの古いリリースを使っている場合は、修正済みのパッケージがまだ出ていません。
Debian
Debianのセキュリティトラッカーでは、CVE-2026-109618 について次のように表示されていました[Debian Security Tracker]。
| リリース | ソースパッケージ | 状態 |
|---|---|---|
| 13(trixie) | php8.4 | 修正済み:8.4.27-1~deb13u1(DSA-6574-1) |
| 12(bookworm) | php8.2 | vulnerable(修正済みの版の掲載なし) |
| forky・sid | php8.4 | vulnerable(8.4.26-1) |
Debian 12 のセキュリティサポートは、2026年7月12日に長期サポート(LTS)チームへ引き継がれています[debian.org]。Debian 12 を使っている場合は、トラッカーとLTSのセキュリティ情報(DLA)で修正版が出たかを確認してください。なお、CVE-2026-109619 のトラッカーのページは、確認した時点では開けませんでした(404)。
Debianも、セキュリティの修正は新しいバージョンに上げずに、安定版に収録したバージョンへ取り込む方針です。修正済みかどうかは、インストールしたパッケージの番号を、セキュリティ勧告(DSA)に載った番号と比べて確かめるよう案内しています[Debian セキュリティFAQ]。
Red Hat Enterprise Linux・AlmaLinux・Rocky Linux
この記事を書いた時点では、今回の2件のCVEに対応するアドバイザリを確認できませんでした。各ディストリビューションのセキュリティ情報で、対象のCVE番号を検索して確かめてください。
9月24日に公開された 8.5.11 / 8.4.26 / 8.3.35 / 8.2.34 は定例の更新で、今回の脆弱性は直っていません。一方、ディストリビューションのパッケージは公式と違う番号のまま修正済みのことがあります。どちらの場合も、判断の基準は「その配布元の告知に載った修正済みの番号」です。
パッケージを更新する手順

UbuntuとDebianを例に、作業の流れを説明します。
- バックアップを取る:サイトのファイルとデータベースを保存し、更新で不具合が出ても戻せるようにします。
- パッケージの一覧を新しくする:
apt-get updateで、設定したリポジトリから最新のパッケージ情報を取り込みます。Debianのセキュリティ FAQ は、勧告の修正を入れる前にこのコマンドを実行するよう案内しています[Debian セキュリティFAQ]。 - パッケージを更新する:
apt-get upgradeで、入っているパッケージをまとめて更新します。特定のパッケージだけを更新するならapt-get install パッケージ名を使います[Debian セキュリティFAQ]。 - 入ったバージョンを確かめる:
dpkg-query -W 'php*'で、パッケージ名とインストールされたバージョンが一覧で表示されます[dpkg-queryのマニュアル]。PHP-FPMやmod_phpのパッケージが、告知に載った修正済みの番号になっているかを見ます。
sudo apt-get update
sudo apt-get upgrade
dpkg-query -W 'php*'
ほかのパッケージもまとめて更新されるので、影響が心配な場合は検証用のサーバーで先に試してください。
再起動と、Web側のバージョンの確認
パッケージを更新しても、動いているプロセスは古いプログラムのままのことがあります。Debianのセキュリティ FAQ も、更新のあとにサービスや動いているプロセスの再起動が必要な場合があるとしています[Debian セキュリティFAQ]。
- PHP-FPMを使っている場合:PHP-FPMのサービスと、前段のWebサーバー(nginxやApache)を再起動します。systemdで管理しているサーバーなら
systemctl restart サービス名で再起動できます[systemctlのマニュアル]。PHP-FPMのサービス名はディストリビューションとPHPのバージョンで違うので、systemctl statusなどで確かめてください。 - Apacheのmod_phpを使っている場合:PHPはApacheの中で動いているので、Apacheを再起動します。PHP公式は、今回の脆弱性ではmod_phpのリスクが最も高いとしています[php.net]。
再起動したら、サイトを動かしているPHPのバージョンを確かめます。コマンドのphp -vが表示するのはコマンドライン用のPHPで、Webサイトを処理しているPHP-FPMやmod_phpとは別のことがあります。確かめ方は「PHPのバージョンを確認する方法」で説明しています。ディストリビューションのパッケージの場合、画面に出る番号は公式の修正版と一致しないことがあります。その場合は、上の手順で確かめたパッケージの番号を基準にします。
外部リポジトリ・ソースビルド・8.1以前の場合
remiなどの外部リポジトリ
PHP公式は、rpms.remirepo.net を使っている人に対し、すぐに更新できるよう、ディストリビューションのパッケージかソースからのビルドに切り替えるよう求めています[php.net]。切り替えるとPHPのバージョンや拡張機能の構成が変わることがあります。切り替えか配布元の更新を待つかは、サイトの重要度と、次に挙げる暫定策を取れるかで判断します。
ソースから自分でビルドしている
使っている系列の修正版(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35)のソースでビルドし直し、PHP-FPMやWebサーバーを再起動します。ソースと署名は php.net のダウンロードページで公開されています[php.net]。
PHP 8.1以前
PHP公式は、8.1以前はPHPプロジェクトから更新を受けられないとし、ディストリビューションや長期サポートの事業者に問い合わせるか、サポート中のバージョンに上げるよう求めています。深刻度を考え、7.4・8.0・8.1向けに最小限の修正をソースで公開しましたが、ソースからビルドする人や長期サポートを受けられない人向けです[php.net]。
Ubuntu 22.04 LTS の php8.1 のように、ディストリビューションが修正を出している場合もあります。ただし、PHP 8.1 そのものの公式サポートは2025年12月31日で終わっています[php.net]。今回の修正を当てたうえで、サポート中のバージョンへの切り替えを計画してください。
すぐに更新できない場合、PHP公式は攻撃の経路を減らす設定(session.upload_progress.enabled=0など)を挙げています。ただし、どれもサーバーを安全にするものではないとしています[php.net]。
更新が終わったら
- サイトの動作を確かめる:トップページ、問い合わせフォームの送信、ログイン、管理画面、決済などを一通り試します。
- エラーログを見る:再起動のあとに、PHPやWebサーバーのエラーログに新しいエラーが出ていないかを確認します。
- 乗っ取られていないかを確かめる:情報が漏れた10月20日から更新までの間に攻撃を受けていないか、見覚えのないファイルや管理者アカウント、cronの登録などを確認します。手順は「Webサイトが乗っ取られていないか確かめる方法」にまとめています。
よくある質問
更新したのに、バージョンが8.3.6のままです
Ubuntu 24.04 LTS の php8.3 なら、修正済みのパッケージの番号は 8.3.6-0ubuntu0.24.04.13 です[Ubuntu USN-8948-1]。表示上の「8.3.6」は変わりません。パッケージの番号の後半まで確かめてください。
Dockerの公式PHPイメージを使っています
この記事では、Dockerの公式イメージの更新状況は確認していません。イメージの配布元の更新を確かめ、新しいイメージでコンテナを作り直してください。
再起動するとサイトが止まりますか?
再起動の間は、短い時間ですがリクエストを処理できないことがあります。アクセスの少ない時間を選ぶか、メンテナンス表示を出してから作業してください。
入手元の確認、パッケージの更新と再起動、Web側のバージョン確認、更新後の侵害チェックまでお受けします。8.1以前からの切り替えや、新しいサーバーへの引っ越しもご相談ください。無料相談はこちら
参考にした情報
- php.net セキュリティアドバイザリ(2026年10月21日) / 「Supported Versions」 / 「Downloads」
- Ubuntu USN-8948-1「PHP vulnerabilities」 / CVE-2026-109618 / CVE-2026-109619
- Debian Security Tracker「CVE-2026-109618」 / Debian セキュリティFAQ / debian.org(Debian 12 のLTS移行のお知らせ) / Debian LTS セキュリティ情報
- dpkg-query(1) / apt(8) / systemctl(1)
- php.net「FastCGI Process Manager (FPM)」


