PHP と Node.js のリモートコード実行の脆弱性(2026年10月)

著者 · 2026年10月22日 · 5分で読めます

PHP と Node.js のサーバーをリモートコード実行から守るイメージ図

2026年10月21日、PHPチームとNode.jsチームがそろって緊急のセキュリティ更新を公開しました。どちらのリリースも、セキュリティの世界で最も恐れられている種類の脆弱性をふさぐものです。第三者が離れた場所からお客様のサーバー上でコードを実行できてしまう脆弱性で、専門用語ではリモートコード実行(RCE)と呼ばれます。PHPにはこの種の脆弱性が2件あり、どちらも「緊急(critical)」と評価されています。Node.jsには1件あり、「高(high)」と評価されています。

御社のWebサイト、ネットショップ、Webアプリケーションが PHP または Node.js で動いている場合、この記事では、これがビジネスにとって何を意味するのか、どのバージョンが安全か、そして今日IT担当者やホスティング会社に何を依頼すべきかを説明します。

「離れた場所からコードを実行される」とはビジネスにとって何を意味するのか

Webサイトのサーバーをオフィスにたとえてみましょう。一般的な脆弱性では、窓から中をのぞかれる程度かもしれません。RCE の脆弱性では、鍵もログインもなしに中へ入り込み、オフィスのパソコンを使われてしまいます。必要なのは、インターネット経由でWebサイトにリクエストを送ることだけです。

このような脆弱性が悪用されると、攻撃者はWebサイト自体がサーバー上でできることを何でもできるようになります。たとえば、ページの内容を書き換える、訪問者向けにスパムリンクやマルウェアを仕込む、お問い合わせフォームのメッセージやデータベースの設定など保存されたデータを読み取る、サーバーを使ってほかの相手を攻撃する、といったことです。被害は技術面にとどまりません。ブラウザにサイトをブロックされたり、Google の検索結果から消えたりして、お客様からの信頼も損なわれます。

そのため、RCE の脆弱性は常に最優先で対応すべきものです。こうした攻撃は通常、何千ものサイトを一度にスキャンするプログラムによって自動で行われます。狙われる理由はサイトの規模ではなく、更新されていないことです。

PHP の緊急レベルの脆弱性2件

PHPチームはバージョン 8.5.12、8.4.27、8.3.36、8.2.35 を公開し、すべての PHP 利用者に直ちに更新するよう強く求めています。2件とも CVSS スコアは 10 点中 9.2 で、緊急レベルです。

  • CVE-2026-109618:リクエスト処理の初期段階で PHP がメモリ不足になった際に起きる不具合です。公式アドバイザリによると、mod_php を使う Apache サーバーでは、標準設定のままログインなしでリモートからコードを実行できることが確認されています。
  • CVE-2026-109619:あるリクエストのデータが残り、同じプロセスの次のリクエストから読み取られてしまう不具合です。影響はメモリ内容の漏えいからリモートでのコード実行にまで及ぶ可能性があります。

8.2.35、8.3.36、8.4.27、8.5.12 より前のすべての PHP バージョンが影響を受けます。アドバイザリでは Apache mod_php が最も明確に影響を受けるとされています。Nginx とよく組み合わせて使われる PHP-FPM も、条件によっては危険があると判断されています。PHPチームは、更新以外に完全な回避策はないと明言しています。

重要な点がもう1つあります。PHP 8.2 は 2026年12月31日でセキュリティ修正の提供が終了します。まだ PHP 8.2 以前を使っている場合は、新しいバージョンへの移行を計画してください。

Node.js の RCE 脆弱性

Node.js はバージョン 22.23.4、24.22.1、26.12.1 を公開しました。最も深刻な脆弱性は CVE-2026-111497 で、Brotli で圧縮されたデータを展開する部分にあります。Node.jsチームによると、リモートコード実行につながるおそれがあります。評価は「高」で、緊急より1段階低いものの、早急にふさぐ必要があります。サポート中の3つの系列 22、24、26 のすべてが影響を受けます。

同じリリースではほかに9件の脆弱性も修正されており、そのうち3件も「高」です。2件は TLS 証明書の確認に関するもの、1件は dns.resolve 関数に関するものです。残りは「中」と「低」です。OpenSSL、c-ares、Undici など同梱のコンポーネントも更新されています。Node.jsチームは、サポートが終了した(End-of-Life)バージョンはセキュリティリリースのたびに必ず影響を受けると注意を促しています。

自社サイトは影響を受けますか?

インドネシアの企業サイトの多くは、運営者が気づかないまま PHP で動いています。たとえば WordPress は PHP で動作しますし、ほかの多くの CMS や一般的な cPanel ホスティングも同様です。Node.js は、Webアプリ、API、個別開発のネットショップでよく使われます。

ホスティング会社や開発者に「当社のサイトは PHP と Node.js のどちらで動いていて、バージョンはいくつですか」と聞いてみてください。誰も確実に答えられない場合、それ自体がサイト保守の見直しが必要なサインです。

今日やるべきこと

  1. バージョンを確認する。IT担当者またはホスティング会社に、サイトとアプリで使っている PHP と Node.js のバージョンを確認してもらいます。
  2. 安全なバージョンに更新する。PHP は使っている系列に応じて 8.5.12、8.4.27、8.3.36、8.2.35。Node.js は 22.23.4、24.22.1、26.12.1 です。
  3. サービスを再起動する。更新後、新しいバージョンが実際に使われるよう、PHP-FPM、Apache、Node.js のプロセスを再起動する必要があります。
  4. 証拠をもらう。「対応済みです」の一言だけでなく、更新後のスクリーンショットやバージョン表示をもらいましょう。
  5. 攻撃の兆候を確認する。サイトの挙動がおかしいことがあった場合は、サイトが改ざんされた直後の24時間についての記事の手順に従ってください。

今日中に PHP を更新できない場合、CVE-2026-109619 のアドバイザリでは暫定策が2つ挙げられています。使っていなければ session.upload_progress を無効にすること、PHP 8.5 では fatal_error_backtraces=0 を設定すること、そのうえで PHP を再起動することです。これはリスクを下げるだけで、脆弱性はふさがりません。

共有ホスティングでは、通常 PHP を自分で更新することはできません。ホスティング会社に連絡し、サーバーがいつ更新されるかを確認してください。

Digimasi にできること

このような脆弱性は今後も出てきます。サイトの安全を左右するのは、更新をどれだけ早く適用できるか、そして誰がその適用に責任を持つかです。企業サイトのセキュリティの記事にあるチェックリストが出発点になります。

私たちが構築するサイトは Cloudflare Workers 上で動いており、お客様がご自身で保守する PHP や Node.js のサーバーではありません。プラットフォームの更新は私たちと Cloudflare が行うため、お客様側の追加作業はありません。

現在のサイトやアプリが PHP または Node.js で作られている場合は、バージョンの確認や、ペネトレーションテストによる検証をお手伝いできます。お問い合わせページからサイトの状況をお知らせください。次に取るべき手順を一緒に決めます。