php.net ではありません · NVD ではありません · CISA ではありません

PHP 脆弱性トラッカー

PHP のセキュリティ脆弱性に関する非公式ブリーフィング

English简体中文日本語DeutschFrançaisNederlandsEspañol

セキュリティ警報

PHP2Shell:PHP をアップデートしてください。それが唯一の完全な修正です。

CVE-2026-109618 と CVE-2026-109619 は、PHP 本体に存在する認証不要のリモートコード実行(RCE)の深刻な脆弱性です。PHP プロジェクトは 2026 年 10 月 21 日、サポート中の 8.2〜8.5 系に修正版を公開しました。アップデート後は PHP を再起動してください。ファイアウォールは代わりになりません。

対策の手順

対策

PHP2Shell の対策:PHP をアップデートしてワーカーを再起動する

PHP の脆弱性 PHP2Shell への対策について、PHP プロジェクト、AWS、CISA の見解は一致しています。CVE-2026-109618 と CVE-2026-109619 の完全な修正はアップグレードだけです。以下のコマンドは一般的な作業の形です。パッケージのバージョンはディストリビューションの勧告に依存します。CLI が修正版を表示しても、Web サイトの背後のプールがそのバイナリで再起動された証明にはなりません。

最終更新

目標バージョン

ソースの tarball と Windows ビルドは PHP ダウンロードページにあります。php.net によれば、Linux ディストリビューションと LTS ベンダーは一般公開前にパッチを受け取っているため、多くの場合ディストリビューションのパッケージが適切な経路です。同じ告知は、ボランティアの Remi リポジトリ(rpms.remirepo.net)は 10 月 21 日時点で更新がないとし、利用者にディストリビューションのパッケージへの切り替えかソースからのビルドを勧めています。

Debian、Ubuntu などの apt 系

Debian は修正を公開しています。Debian 12 bookworm 向けは DLA-4848-1(Debian LTS)で php8.2 8.2.35-1~deb12u1、Debian 13 trixie 向けは DSA-6574-1 で php8.4 8.4.27-1~deb13u1 です。Debian のセキュリティトラッカーは基本スイートのビルド(bookworm の php8.2 8.2.32-1~deb12u1、trixie の php8.4 8.4.24-1~deb13u1)を脆弱としているため、修正は security スイートを sources に入れている場合にのみ届きます。10 月 22 日時点でトラッカーは testing(forky)の php8.4 8.4.26-1 をまだ脆弱としていました。

メタデータを更新し、アーカイブで実際に公開された PHP パッケージをインストールします。パッケージ名はマイナーブランチに対応します(php8.3-fpm、php8.3-cli、php8.3-common、mod_php を使う場合は Apache モジュールのパッケージ)。候補バージョンがまだ修正版より低い場合は、設定の問題ではなくディストリビューションの対応待ちです。

8.3 系パッケージの apt の例。完了とする前に候補バージョンが 8.3.36 以降であることを確認してください。
sudo apt-get update
apt-cache policy php8.3-cli php8.3-fpm php8.3-common
sudo apt-get install --only-upgrade php8.3-cli php8.3-fpm php8.3-common
php8.3 -v
# Web SAPI, not just the CLI:
php-fpm8.3 -v
sudo systemctl restart php8.3-fpm
# If Apache loads mod_php, restart Apache as well:
sudo systemctl restart apache2

RHEL、Alma、Rocky、Fedora:dnf または yum

dnf の例。古い派生版では yum update php php-fpm php-cli も同じ考え方です。バージョン文字列はベンダーのエラータを信頼してください。
sudo dnf clean expire-cache
sudo dnf update php php-cli php-fpm php-common
php -v
php-fpm -v
sudo systemctl restart php-fpm
# mod_php under httpd:
sudo systemctl restart httpd

Docker などのイメージ

再ビルドして再デプロイしてください。新しいベースイメージを pull しても、トラフィックを処理するワークロードを入れ替えるまで何も変わりません。公式イメージのタグは通常 PHP のバージョンに従います。固定する前に Docker Hub でタグの存在を確認してください。Cloud Run と GKE に関する Google Cloud の説明も同じで、Google が置き換えるとしているサーバーレスのベースイメージでない限り、デプロイするイメージを再ビルドする必要があります。

修正済みのタグに固定し、再ビルドしてサービスを入れ替えます。apache タグは mod_php 型の公式イメージです。現在使っているバリアントを使ってください。
FROM php:8.3.36-fpm
# or: php:8.3.36-apache, php:8.4.27-fpm, php:8.2.35-fpm, php:8.5.12-cli

# then, on the host:
# docker pull php:8.3.36-fpm
# docker build -t your-app:php2shell-fix .
# redeploy and confirm the running container's PHP version

cPanel

  1. EasyApache で修正済みの PHP ビルドを使えるよう、cPanel 自体を更新します。メニューは変わることがあるので、表記が異なる場合は cPanel のドキュメントに従ってください。
  2. WHM で EasyApache 4 を開き、そのブランチの修正版以上の PHP を用意します。MultiPHP Manager でドメインごとに PHP バージョンを指定します。
  3. ベンダーがバックポートを含むと明言していない限り、インターネットに公開しているドメインを PHP 8.1 以前のハンドラーから切り替えます。
  4. WHM から Apache と PHP-FPM を再起動し、ドメインの PHP バージョンを確認し、一時的な確認用ページは削除します。

Plesk

  1. Plesk とシステムパッケージの更新をインストールします。現在の操作手順は Plesk のドキュメントを参照してください。
  2. 「ツールと設定」で更新と PHP ハンドラーの一覧を確認します。ドメインの PHP 設定で、各サブスクリプションが実際に使うバージョンがわかります。
  3. 修正済みのハンドラー(8.2.35、8.3.36、8.4.27、8.5.12、または検証済みのベンダービルド)を選び、公開サイトから適用します。
  4. Plesk が使う PHP サービスを再起動し、パネルのホストだけでなくドメインに対してバージョンを確認します。

宝塔面板(BT Panel)

2026 年 10 月 22 日更新の宝塔の告知によると、Linux 版と Windows 版のパネルは 8.2.35、8.3.36、8.4.27、8.5.12 を同期済みです。Linux 版のみの 7.4.34、8.0.31、8.1.35 は宝塔のビルドで、PHP プロジェクトのリリースではありません。操作手順と Windows 向けの不完全な設定は 宝塔面板のページにあります。

mod_php と PHP-FPM の違い

どちらも PHP プロジェクトのリスク一覧に含まれます。mod_php は、実証済みの認証不要の経路がアプリケーションコードより前に発動するため最もリスクが高いとされています。mod_php を読み込み直すのは Apache の再起動です。PHP-FPM は別プロセスなので、すべてのプールを再起動してください(systemctl restart php8.3-fpm など)。プールが独自のバイナリを固定していることもあり、シェルの PATH 上の php はプールとは別のビルドの場合があります。FrankenPHP、php-cgi、LiteSpeed も Web リクエストを処理するものとして対象に挙げられています。apt の php-fpm パッケージで足りると思い込まず、各ベンダーの手順に従ってください。

暫定策(PHP は不完全としています)

以下は php.net の勧告から写した、つなぎとしてのみ使う設定です。特定の経路を減らすだけで、ホストを安全にはしません。php.ini か、管理者レベルのプールまたは Apache の設定(php_admin_value)に記述してください。PHP によると、ini_set() やディレクトリ単位の .user.ini ではセッションアップロードの経路に対して遅すぎます。

CVE-2026-109618

CVE-2026-109619

Web アプリケーションファイアウォール(WAF)

CISA は、システムを更新するまでの間、WAF がある程度の防御になる可能性があるとしています。Cloudflare は、この問題に対応するマネージドルールを 2026 年 10 月 21 日 03:02 UTC から無料・有料の WAF プランの顧客に展開したとし、禁輸期間中に PHP Foundation などと開発したと説明したうえで、それでもパッチを当てるよう求めています。ルールは回避され得ます。Cloudflare 自身、攻撃者がルールを回避しようとペイロードを変えるのを観測しています。WAF は維持しつつ、修正の代わりにはしないでください。

アップグレード後

出典

外部リンクは本サイトの外に移動します。本サイトはエクスプロイトコードを掲載しません。

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. PHP downloads — PHP project (php.net)
  3. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  4. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  5. Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPot — AWS Security Blog
  6. Cloudflare deploys protections against php2shell vulnerability — Cloudflare
  7. Critical security issue affecting PHP — UK NCSC
  8. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  9. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  10. php image on Docker Hub — Docker Official Images
  11. DLA-4848-1: php8.2 security update (Debian 12 bookworm) — Debian LTS
  12. DSA-6574-1: php8.4 security update (Debian 13 trixie) — Debian
  13. cPanel documentation — cPanel
  14. Plesk documentation — Plesk
  15. PHP 与 Node.js 紧急安全更新公告(更新于 2026-10-22) — 宝塔面板 (BT Panel)
  16. php2shell product-inventory notes — NCSC-NL