コンテンツへスキップ

media AI活用の最前線

Node.jsの脆弱性(2026年10月)|22・24・26系の更新と今やること

Node.jsも脆弱性を修正。22・24・26系に修正版。サーバーとMCPで今日やること

結論:Node.jsの開発チームは2026年10月21日、22系・24系・26系のセキュリティ更新(22.23.4・24.22.1・26.12.1)を公開しました。最も重い深刻度は「高(HIGH)」で、Brotli形式の圧縮データを展開する処理の不具合から、外からプログラムを実行されるおそれ(リモートコード実行)がある問題(CVE-2026-111497)も含まれます。Node.jsを動かしているサーバー・開発環境・CIは、今日中に版を確かめて更新してください。

  • 何が起きた:深刻度「高」が4件、「中」が3件、「低」が3件の、合わせて10件の脆弱性の修正です。c-ares・OpenSSL・Undici・SQLiteなどの依存部品の更新と、侵害されたeMudhraの中間認証局の証明書への対応も入っています。
  • 誰に影響する:サポート中の22系・24系・26系のすべてです。20系は2026年4月30日にサポートが終わっていて、修正は出ません。
  • 何をする:サーバー・Dockerのイメージ・CI・開発機のNode.jsを修正版へ上げます。Claude Code本体は実行時にPCのNode.jsを使いませんが、npxなどで動かしているMCPサーバーは対象です。

対象読者:Node.jsでWebサービスや社内ツールを動かしている開発・情報システムの担当者、AIエージェントやMCPサーバーを社内で使っている会社の担当者

読了後にできること:どの版が対象かを確かめ、サーバー・コンテナ・CI・開発機の順に更新を進められます。

最終更新:2026年10月22日(JST)

10月21日は、PHPの緊急の修正とNode.jsのセキュリティ更新が同じ日に重なりました。私たちもPHPの対応を進めながら、開発に使っているMacとサーバーで動いているNode.jsの版を1台ずつ確かめ、更新を進めました。

確かめてみて分かったのは、「公式の修正版が出た時刻」と「自分の環境に届く時刻」がずれることです。公式の配布サイトには修正版が出ていても、Homebrewや各Linuxディストリビューションのパッケージには、まだ前の版しか無い時間がありました。たとえば10月22日0時すぎの時点で、私たちのMacのHomebrewのNode.jsは26.12.0のままで、修正版の26.12.1はまだ届いていませんでした。急ぐ環境では、公式の配布物か、バージョン管理の道具(nvmなど)から入れるほうが早く確実です。

この記事では、Node.jsの公式のセキュリティ告知(nodejs.org)を一次情報にして、何が直されたか、どの版が対象か、今日やることを整理します。AIツールを使う会社がつまずきやすい「Claude CodeはNode.jsの更新が要るのか」という点も、公式ドキュメントで確かめました。

同じ日に出たPHPの緊急の脆弱性については、PHPの緊急脆弱性(CVE-2026-109618)|対象と今やることにまとめています。WordPressなどPHPで動くサイトを持っている会社は、そちらも合わせて確かめてください。

Node.jsが10月21日に公開したセキュリティ更新の内容

Node.jsの公式の告知(Wednesday, October 21, 2026 Security Releases)に載っている脆弱性は次の10件です。深刻度は告知の表記どおりです。

Node.jsの10月21日のセキュリティ更新の内訳の図。深刻度「高」が4件(Brotliの展開で乗っ取り・名前解決の切り詰め・TLSの確認すり抜け2件)、「中」が3件、「低」が3件。c-ares・OpenSSL・Undici・SQLite・証明書などの依存部品も更新

CVE番号深刻度何が起きるか対象の系列
CVE-2026-111497高Brotli形式のデータを展開する処理で、決められた範囲の外に書き込んでしまう。外からプログラムを実行されるおそれ(リモートコード実行)26・24・22
CVE-2026-105482高名前解決(dns.resolve)で、途中に特殊な文字(NUL)を含む名前が切り詰められて扱われる26・24・22
CVE-2026-105483高IPアドレスを全角の数字で書くと、TLS証明書のホスト名の確認をすり抜けられる26・24
CVE-2026-106069高ホスト名がゆるくIPアドレスと解釈される場合に、TLS証明書のホスト名の確認をすり抜けられる26・24・22
CVE-2026-105481中使い回しの接続(Keep-Alive)で、リクエストを送る前に書かれた応答を処理してしまう26・24・22
CVE-2026-106072中標準的でない書き方のIPv4のホスト名で、ドメイン名の証明書がIPアドレスの相手の確認に使えてしまう26・24・22
CVE-2026-106074中起動時のスナップショットや単一実行ファイル(SEA)に乱数の蓄えが保存され、crypto.randomUUID() などが毎回同じ値を返す26・24・22
CVE-2026-106070低ZIPのヘッダーの確認に失敗した後、攻撃者が決めた先頭のデータを返してしまう26
CVE-2026-106071低Permission Model(権限の仕組み)で、ワイルドカードの指定によりファイルの権限を広く与えすぎる26
CVE-2026-106073低Permission Modelで、fs.realpathSync を使うと制限をすり抜けられる26・24・22

このほか、名前解決の部品(c-ares)、HTTPの部品(Undici)、OpenSSL(24系・22系)、SQLite(22系)の更新と、侵害されたeMudhraの中間認証局の証明書への対応(ca-cert)も入っています。

経営者や担当者が押さえておきたいのは2点です。1つは、Brotliの展開の不具合(CVE-2026-111497)が「外からプログラムを実行されるおそれ」のある種類だということ。もう1つは、TLS証明書の確認をすり抜けられる問題が複数あり、Node.jsで外部のAPIやサービスに安全につないでいるつもりの処理にも関わることです。

対象の版と、更新後の版

公式の告知では、22系・24系・26系の3つの系列に修正版が出ています。サポート期間は、Node.jsの公式のリリース予定表で確かめられます。

Node.jsの系列ごとの修正版の図。26系は26.12.1、24系は24.22.1、22系は22.23.4。20系以前は2026年4月30日でサポートが終わっていて修正なし

系列修正版今の段階とサポートの終わり
26系26.12.1最新版(Current)。2026年10月28日に長期サポート(LTS)になる予定。2029年4月30日まで
24系24.22.1長期サポート。2026年10月20日から保守の段階。2028年4月30日まで
22系22.23.4長期サポートの保守の段階。2027年4月30日まで
20系以前修正なし20系は2026年4月30日にサポート終了。公式は「サポートが終わった版は、セキュリティ更新のたびに必ず影響を受ける」としている

20系以前を使い続けているなら、今回の修正は届きません。公式の告知のページには、保守の段階を過ぎた版の有償サポートを、OpenJSのパートナー企業から受けられるとの案内もあります。ただ、多くの会社にとって現実的なのは、22系・24系へ移すことです。

今日やること

次の順に確かめてください。Node.jsは「サーバー」だけでなく、コンテナ・CI・開発機・社内ツールの中にも入っていることが多いので、置き場所ごとに見るのが確実です。

Node.jsの更新で今日やる順番の図。node -vで版を確かめ、サーバーと開発機を公式の配布物かnvmで更新し、Dockerのイメージを作り直し、CIの版を上げ、20系の移行を決める

  1. 版を確かめる:各環境で node -v を実行し、22.23.4・24.22.1・26.12.1 以降かを見ます。
  2. サーバーと開発機を更新する:公式の配布物、nvmなどのバージョン管理の道具、OSのパッケージのいずれかで上げます。Homebrewや各ディストリビューションのパッケージは、公式より遅れて届くことがあります。届いていなければ、公式の配布物かnvmで入れます。
  3. Dockerのイメージを作り直す:node:22 などのベースイメージを使っているなら、新しいベースイメージで作り直してデプロイし直します。動いているコンテナは、作り直すまで古いNode.jsのままです。
  4. CIの設定を確かめる:GitHub Actionsなどで版を細かく固定しているなら、修正版に上げます。
  5. サーバーレスや組み込みのNode.jsは提供元を確かめる:クラウドの実行環境や、アプリに組み込まれたNode.jsは、自分では上げられないことがあります。提供元の更新状況を確かめます。
  6. 20系以前の移行を決める:修正が出ないので、移行の時期を今日決めます。

AIツールを使う会社が確かめること

AIエージェントやMCPサーバーを使っている会社では、「どの道具がNode.jsで動いているか」が分かりにくくなりがちです。私たちが公式ドキュメントで確かめた範囲(2026年10月22日に確認)では、次のように整理できます。

AIツールごとのNode.jsの更新との関係の図。Claude Code本体は実行時にNode.jsを使わない、npxで動かすMCPサーバーは更新の対象、社内のAIエージェントは外部の内容を取る処理から先に更新

道具Node.jsの更新との関係
Claude Code本体公式ドキュメントによると、ネイティブのインストーラー版もnpm版も同じネイティブの実行ファイルで動き、実行時にPCのNode.jsを使わない。npmで入れる場合はNode.js 22以上が必要とされている。Claude Code本体のためにNode.jsを急いで上げる必要はないが、ほかの用途のNode.jsは別に上げる
npx などで動かすMCPサーバーPCやサーバーのNode.jsで動くので、更新の対象。設定ファイルに書いたMCPサーバーが、どのNode.jsで動いているかを確かめる
Node.jsで書いた社内のAIエージェント・ボット更新の対象。外部のURLの内容を取りに行く処理を持つものは、特に早めに上げる

外部の内容を取りに行く処理を優先したい理由は、Node.jsの fetch() が、Brotliで圧縮された応答を自動で展開する作りだからです。2024年にも、この自動の展開が原因で、信頼できないURLから取得すると資源を使い果たして落ちるおそれのある問題(CVE-2024-22025)が直されています。今回のCVE-2026-111497について、公式は攻撃の経路を詳しく書いていません。それでも、Web検索や外部のページの取得をするAIエージェントは、信頼できない相手のデータを日常的に受け取る作りなので、更新の順番を前にしておくと安心です。

すぐ更新できないときの考え方

今回の公式の告知には、PHPのときのような「設定で一時的に避ける方法」は載っていません。対策は、修正版への更新です。

どうしてもすぐ上げられない場合は、被害を広げない工夫を先に入れます。たとえば、外部のURLを取りに行く処理を一時的に止める、信頼できる相手にだけつなぐ、Node.jsのプロセスを権限の小さい利用者で動かす、といった形です。ただし、これらは更新の代わりにはなりません。更新できる見込みの日を決めて、それまでのつなぎとして扱ってください。

侵入が疑われる場合の確かめ方と、バックアップから戻すときの考え方は、PHPの緊急脆弱性の記事の「入られていないかの確かめ方」「戻せるか」の節がそのまま使えます。中小企業の守り方の全体像は、AIサイバー攻撃とは|中小企業の防御5手でも整理しています。

この記事の内容を社内で使うなら

要点と手順をまとめた資料を無料で受け取れます。研修6,000名以上・支援100社以上の実績をもとに、自社の業務に当てはめる相談も30分から受け付けています。

部門別 AIエージェント活用マップ 50選無料で受け取る →AI顧問に相談する(30分・無料)→

同じ日に出たPHPの緊急の脆弱性との違い

10月21日は、PHPとNode.jsの更新が同じ日に重なりました。急ぐ順番を決めるときの目安として、違いを並べておきます。

同じ日に出たPHPとNode.jsの更新の比較図。PHPは深刻度が緊急9.2で一時対策あり(不完全)、修正版は8.5.12・8.4.27・8.3.36・8.2.35。Node.jsは深刻度が高で告知に一時対策なし、修正版は26.12.1・24.22.1・22.23.4。どちらも更新が基本

項目PHP(CVE-2026-109618/109619)Node.js(10月21日の更新)
最も重い深刻度緊急(CVSS v4.0 で9.2)高(HIGH)
外からプログラムを実行されるおそれあり。mod_phpでは、認証なしのリクエストでアプリより前に成り立つことが確認されているあり(Brotliの展開の不具合)。公式は攻撃の経路を詳しく書いていない
修正版8.5.12・8.4.27・8.3.36・8.2.3526.12.1・24.22.1・22.23.4
公式の一時対策あり(ただし完全ではない)告知には無い

どちらも更新が基本です。WordPressなどPHPで動く公開サイトを持っているなら、まずPHPを。Node.jsで動くWebサービスやAIエージェントを持っているなら、同じ日のうちにNode.jsも上げてください。

よくある質問

Q. Claude Codeを使っています。Node.jsを更新しないといけませんか?

A. Claude Code本体は、公式ドキュメントによると実行時にPCのNode.jsを使いません。そのため、Claude Code本体のために急ぐ必要はありません。ただし、npxなどで動かしているMCPサーバーや、ほかの用途のNode.jsは更新の対象です。

Q. 20系のNode.jsを使っています。どうすればよいですか?

A. 20系は2026年4月30日にサポートが終わっていて、今回の修正は出ません。22系か24系への移行を急いでください。移行までの間は、外部の信頼できないデータを受け取る処理を減らすなど、被害を広げない工夫を入れます。

Q. Dockerのコンテナで動かしています。何をすればよいですか?

A. ベースイメージを修正版のNode.jsが入ったものに替えて、イメージを作り直し、デプロイし直します。作り直すまで、動いているコンテナは古い版のままです。

Q. Homebrewで更新しても、修正版になりません。

A. Homebrewや各ディストリビューションのパッケージは、公式より遅れて修正版が届くことがあります。急ぐ場合は、公式の配布物かnvmなどのバージョン管理の道具から入れてください。

Q. この脆弱性を狙った攻撃は、もう起きていますか?

A. 10月21日の公式の告知には、悪用の有無についての記載はありません。最新の状況は、Node.jsの公式の告知とIPA・JPCERT/CCの情報で確かめてください。

まとめ:今日やる3つのこと

  1. サーバー・コンテナ・CI・開発機で node -v を実行し、22.23.4・24.22.1・26.12.1 以降かを確かめる。
  2. 足りなければ更新する。コンテナは作り直してデプロイし直し、20系以前は移行の時期を決める。
  3. MCPサーバーや社内のAIエージェントが、どのNode.jsで動いているかを確かめ、外部の内容を取りに行くものから先に上げる。

次に同じような緊急の更新が出た日の動き方は、WordPressの脆弱性対応|緊急の更新が出た日に最初にやることに5段でまとめています。

AIの時代の攻撃も含めて、自社のシステムにどんな穴がありうるかを一通り点検したい方は、事例集と自社点検シートをまとめた「AIエージェント時代のサイバー攻撃 事例集と自社点検シート」も使ってください。

参考・出典

この記事の内容を社内展開する方へ: 部門別 AIエージェント活用マップ 50選(無料・PDF 32ページ+Excel) をダウンロードできます。

佐藤傑
この記事を書いた人 佐藤傑

株式会社Uravation 代表取締役CEO/生成AIエバンジェリスト。法人向けAI研修・コンサルティングを手がけ、日経・SBクリエイティブ・GMO等のメディアで生成AIについて執筆。

執筆・監修:佐藤傑/下書き・図版・機械検査:当社のAI社員(人が確認してから公開しています)。記事の作り方と検査の方針

この記事をシェア

Contact お問い合わせ

30分の無料相談では、いま時間を取られている業務を伺い、稼働中のAI社員62体の事例の画面と一緒に近い進め方をお見せします。
売り込みはしません。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちら、Codex 個別指導はこちらから別途お申し込みください

Claude Code 個別指導 無料相談