CVE-2026-109618 / CVE-2026-109619 ・ CVSS v4.0 9.2 2026-10-21 PHP 公式が修正版を公開

PHP の重大な脆弱性で何が起きているのか

細工したリクエストを送るだけで、ログインなしにサーバー上で外部から好きなプログラムを動かされるおそれがある脆弱性が 2 件見つかりました。Web のリクエストを受けている PHP はすべて対象です。
0

前提:PHP がリクエストを処理する流れ

PHP はリクエストが来るたびに「準備 → 処理 → 後片付け」を繰り返します。処理を担当するプロセスは使い回されるので、1 つのプロセスが前の人のリクエストと次の人のリクエストを続けて処理します。

ふだんは後片付けで前のリクエストのデータがきれいに消えるので、次のリクエストに影響しません。今回の 2 件は、どちらもこの「準備」と「後片付け」がうまくいかない問題です。

1

メモリ不足で、作りかけのデータが残る

CVE-2026-109618

PHP はメモリが足りなくなると、その場で処理を打ち切ります。打ち切った時点でまだ作りかけだったデータを、後片付けの処理が「正しいデータ」として読んでしまいます。

Apache + mod_php では、アプリのコードが動く前の段階(送られてきたフォームデータを読み込む準備中)に起きるため、アプリの中身に関係なく狙えます。PHP の上限設定の範囲内に見えるデータでも、メモリ不足を起こせることが確認されています。

2

前のリクエストの情報が、次に持ち越される

CVE-2026-109619

エラーで処理が中断すると、後片付けの一部が飛ばされます。データ本体は消えたのに「そのデータがどこにあったか」という情報だけが残ります。同じプロセスが次のリクエストを処理するとき、準備が終わる前にその古い情報を使ってしまいます。

古い情報を使ってしまう入口として確認されたのは、ファイルアップロードの進み具合を記録する機能(初期設定で有効)と、PHP 8.5 のエラー時の呼び出し履歴の記録などです。メモリ不足や処理時間切れも「エラーで中断」のきっかけになります。

影響を受ける環境

PHP の動かし方公式の評価
Apache + mod_php最も危険・攻撃を実証済み
PHP-FPM影響あり2 件目は攻撃を実証済み
FrankenPHP影響あり
php-cgi / LiteSpeed影響あり

Web のリクエストを受けている PHP は、すべて対象です。

修正版

8.5.128.4.278.3.368.2.35

これより前の版はすべて影響を受けます。8.1 以前は PHP 公式の更新対象外なので、利用中の OS やベンダーの修正を確認するか、新しい版に上げてください。8.2 は 2026 年 12 月 31 日でサポートが終わります。

やること

  1. 1
    修正版に更新する。確実な対策はこれだけです。

    Linux のディストリビューションやサポートベンダーには事前に修正が届いているので、それぞれの更新パッケージを確認してください。

  2. 2
    すぐに更新できないなら、持ち越しの入口をふさぐ(CVE-2026-109619)

    php.ini などで session.upload_progress.enabled=0 にして、すべてのプロセスを再起動します。PHP 8.5 なら fatal_error_backtraces=0 も設定します。ini_set() や .user.ini での設定では効きません。

  3. 3
    受け付けるデータ量を絞る(CVE-2026-109618)

    post_max_size を小さくします。アップロードがないアプリは 8M、必要なアプリは 32M。PHP の手前の Web サーバーやプロキシでも、リクエストの大きさや項目数に上限を設けます。

2 と 3 は一部の攻撃経路をふさぐ応急処置です。安全にはならないので、更新は必ず行ってください。