セキュリティニュース

緊急 PHP

PHP本体に重大な脆弱性2件(CVE-2026-109618 / 109619)— 10/21 23時に修正版、公開されたらすぐ更新を

ひとことで言うと

  • PHP 本体に、外部からサーバー上で好きなプログラムを動かされるおそれのある脆弱性(RCE)が2件見つかりました。深刻度は CVSS v4.0 で 9.2(緊急)。
  • 情報が予定より先にもれたため、修正版の公開が前倒しされ、10月21日 23:00(日本時間) に出る予定です。
  • 攻撃ツールはすでにダークネットで出回っています。神戸ソフトのセキュリティチームはこれを入手し、実際にサーバーを乗っ取れることを再現しました。
  • 修正版を当てるまでの臨時対応として、multipart/form-data 形式のリクエストを遮断することが有効です。
  • PHP で動くサイト(WordPress、EC サイトなど)を持つ会社は、修正版が出たらすぐ更新できるよう、今のうちに段取りを。

この記事は 10月21日 17時(日本時間)時点の情報です。修正版が公開されたら追記します。

何が起きたのか

10月20日、PHP の開発チームが「重大な脆弱性2件を直す、緊急のセキュリティリリースを出す」と予告しました。番号は CVE-2026-109618 と CVE-2026-109619 です。

本来は公表の日取りを決めて、修正版と同時に知らせる段取り(いわゆる「非公開期間」)でした。ところが、その前に掲示板へ情報が書き込まれ、攻撃ツールらしき画面の画像まで出回ってしまいました。セキュリティ会社の watchTowr は、少なくとも1件を再現できた=本物だと確認しています。

さらに、攻撃ツールはすでにダークネットで出回っています。神戸ソフトのセキュリティチームはこのツールを入手して検証し、実際にサーバーを乗っ取れることを再現しました。「修正版が出てから攻撃がはじまる」のではなく、今この時点で攻撃できる状態だと考えてください。

PHP チームは公開を1日早め、日本時間 10月21日 23:00 に修正版を出すとしています。状況しだいでは、さらに早まる可能性もあります。

「修正版が出る前に情報がもれた」って、まずいんですか?

まずいに決まっている! 緊急事態だ!

ふつうは直し方と同時に公表するから、守る側は「知った瞬間に直せる」。

今回は、穴があることだけが先に知れわたったうえに、攻撃ツールまで出回っている。守る側はまだ直し方を持っていないのに、攻める側はもう道具を持っているんだ!

だから修正版を待つあいだも、臨時の守りを今すぐ入れろ! 「パッチが出たら考えます」では遅い!

わかっていること・まだわからないこと

項目状況(10/21 17時時点)
深刻度CVSS v4.0 で 9.2(PHP 公式)。10.0 とする報道もある
種類遠隔からのコード実行(RCE)
対象のバージョン未発表。PHP 5〜8 の広い範囲に及ぶという報道あり
攻撃の条件公式には未発表。multipart/form-data 形式のリクエストの遮断が臨時対応として有効
攻撃ツールダークネットで出回っている。神戸ソフトで入手し、サーバーの乗っ取りを再現済み
修正版10/21 23:00(日本時間)に公開予定

気をつけたいのは「古い PHP」

PHP が今も修正版を出しているのは 8.2 以降です。8.1 以前はサポートが終わっているため、今回の修正版は出ない見込みです。

古いまま動いているサイトは意外と多く、たとえば「何年も前に作ってもらったまま」の会社サイトや、更新の止まった業務システムがあたります。こうしたものは更新では直せないので、別の手を考える必要があります。

臨時対応:multipart/form-data を遮断する

修正版を当てるまでのあいだは、multipart/form-data 形式のリクエストを遮断することが有効です。WAF やWebサーバーの設定で、この形式のリクエストをはじくようにします。

multipart/form-data は、主にフォームからファイルを送るときに使われる形式です。遮断すると、次のような機能が使えなくなります。

  • 問い合わせフォームなどのファイル添付
  • WordPress などの管理画面からの画像・ファイルのアップロード
  • 応募フォーム・申込フォームでの書類の送信

使えなくなる機能があることを社内に伝えたうえで、修正版を当てたら元に戻す前提で入れましょう。設定は保守会社・事業者にお願いするのが確実です。参考までに、Webサーバーで遮断する設定の例です。

# nginx(server ブロックの中)
if ($content_type ~* "multipart/form-data") {
    return 403;
}
# Apache(mod_rewrite)
RewriteEngine On
RewriteCond %{CONTENT_TYPE} multipart/form-data [NC]
RewriteRule ^ - [F]

やること

今日のうちに(修正版が出る前)

  1. PHP で動いているものを洗い出す
    会社サイト(WordPress など)、EC サイト、問い合わせフォーム、社内の業務システム、管理画面つきの製品など。自社で把握していなければ、制作会社・保守会社に聞きましょう。
  2. それぞれ「誰が更新するのか」を決める
    レンタルサーバーなら事業者、保守契約があればその会社、自社管理なら自社です。
  3. 保守会社・事業者に連絡を入れておく
    10/21 23時の公開に合わせた対応をお願いしておくと、公開後すぐに動いてもらえます。
  4. multipart/form-data の遮断を入れる
    上の臨時対応です。インターネットに公開しているものから先に。

修正版が出たら

  1. インターネットに公開しているものから先に更新し、済んだら臨時の遮断を外す
  2. PHP 8.1 以前のものは、バージョンアップの計画を立てつつ、それまでの間は外から見えなくする(社内からだけ使えるようにする・一時停止する)、WAF で守るなどを検討する

そのあとも

  1. 更新が済むまでの間に入られていないか、見慣れないファイルが増えていないかなどを確認してもらう
保守会社には、どう連絡すればいいでしょう?

遠慮はいらん! 今すぐ送れ!

「PHP の脆弱性 CVE-2026-109618 / CVE-2026-109619 について、10月21日 23時(日本時間)に修正版が出る予定と聞いています。弊社の◯◯(サイト名・システム名)は対象になりますか。対象であれば、修正版を当てるまでの臨時対応として multipart/form-data 形式のリクエストの遮断をお願いします。あわせて、更新の予定日と、使っている PHP のバージョンを教えてください。」

PHP のバージョンも必ず聞け! 8.1 以前なら、更新だけでは済まない。古いまま放っておくのは、鍵の壊れたドアを開けっぱなしにしているのと同じだ!

まとめ

  • PHP 本体の脆弱性なので、PHP で動いているものは基本的に全部が確認の対象
  • 攻撃ツールはすでに出回っていて、サーバーを乗っ取れることも再現されている
  • 修正版までは multipart/form-data の遮断でしのぐ(ファイル添付などは止まる)
  • 今日のうちに洗い出し・連絡・遮断、出たらすぐ更新。古い PHP は別途、手を打つ

出典

← セキュリティニュースの一覧へ