Node.js の 22・24・26 系で修正版(v22.23.4・v24.22.1・v26.12.1)より前の版を使っているなら、2026年10月21日に公表された脆弱性10件の対象です。最も重大なのは、Brotli 形式の圧縮データを展開する処理の欠陥(CVE-2026-111497)で、Node.js 公式は「リモートコード実行を許す」としています。サポートが終了した 18・20・23・25 系などには修正版が出ないため、サポート中の系列へ移る必要があります。この記事では「自分の環境は対象か」「今すぐ何をするか」を、Node.js 公式ブログ・リリース情報・GitHub のセキュリティアドバイザリに書かれた内容だけで整理します。
【結論】
- 対象:Node.js 22.x・24.x・26.x の修正版より前の版。深刻度「High」は4件で、Brotli 展開の欠陥はこの3系列すべてが該当します。
- 今すぐやること:
node -vで版を確認し、v22.23.4・v24.22.1・v26.12.1(またはそれ以降)に更新して、Node.js で動いているサービスやツールを再起動します。Docker はイメージを取り直して作り直します。 - サポート終了版:18・20・23・25 系などは修正版が出ません。公式は「サポート終了版はセキュリティリリースのたびに常に影響を受ける」としています。22・24・26 系へ移行します。
- Node.js の外にも:Brotli の欠陥は Google Brotli 1.0.3〜1.2.0 そのものにあり、Brotli を組み込んだ他のソフトも各提供元の情報の確認が必要です。
早見表:10件の脆弱性と影響する系列
Node.js 公式ブログ(2026年10月21日)に並んだ10件です。「内容」は公式のタイトルを日本語にしたもので、Brotli 以外の9件はタイトル以上の説明がありません。
| CVE | 内容(公式タイトルの範囲) | 深刻度 | 影響する系列 |
|---|---|---|---|
| CVE-2026-105482 | DNS の名前解決(dns.resolve)で、NUL 文字(文字コード0の文字)を含む名前が途中で切り詰められる | High | 26・24・22 |
| CVE-2026-105483 | IP アドレスが全角数字で書かれていると、TLS 証明書のホスト名の確認をすり抜けられる | High | 26・24 |
| CVE-2026-106069 | 接続先のホスト名が「ゆるく」IP アドレスとして解釈される場合に、TLS 証明書のホスト名の確認をすり抜けられる | High | 26・24・22 |
| CVE-2026-111497 | Brotli 形式の展開処理で範囲外への書き込みが起き、リモートコード実行を許す | High | 26・24・22 |
| CVE-2026-105481 | keep-alive(接続の使い回し)のソケットで、リクエストを送る前に書き込まれていた応答を処理してしまう | Medium | 26・24・22 |
| CVE-2026-106072 | 標準的でない書き方の IPv4 アドレスで、ドメイン名向けの証明書の記載(DNS SAN)により IP アドレスの接続先が認証されてしまう | Medium | 26・24・22 |
| CVE-2026-106074 | crypto.randomUUID() と randomInt() の乱数のキャッシュが起動スナップショットや単一実行ファイル(SEA)に保存され、どのプロセスも同じ値を出す | Medium | 26・24・22 |
| CVE-2026-106070 | ZIP のヘッダーの検証に失敗した後、攻撃者が用意した先頭部分のデータを返してしまう(ZipFile) | Low | 26 |
| CVE-2026-106071 | Permission Model(ファイルなどへのアクセスを制限する機能)で、ワイルドカードの照合によりファイルへの許可が広く与えられすぎる | Low | 26 |
| CVE-2026-106073 | fs.realpathSync を使うと Permission Model の制限をすり抜けられる | Low | 26・24・22 |
系列ごとの修正版と、リリーススケジュールの表に載っている期限は次のとおりです。該当する件数は上の表から数えたものです。
| 系列 | 修正版 | 該当する件数 | サポート終了(予定) |
|---|---|---|---|
| 26.x(Current) | v26.12.1 | 10件 | 2029年4月30日(LTS 開始は2026年10月28日の予定) |
| 24.x(LTS・Krypton) | v24.22.1 | 8件 | 2028年4月30日 |
| 22.x(LTS・Jod) | v22.23.4 | 7件 | 2027年4月30日 |
| それ以外(18・20・23・25 など) | なし | ― | 終了済み |
依存部品の更新も含まれます。公式ブログによると、c-ares(DNS の問い合わせを行う部品)・ca-cert(eMudhra 中間 CA の侵害への対応)・Undici(HTTP クライアント)は 26・24・22 系、OpenSSL は 24・22 系、SQLite は 22 系で更新されました。
自分は対象? 使い方別の切り分け
公式ブログは、使い方ごとの危険度を示していません。下の表は「どの Node.js が動いているか」で整理したものです。
| 使い方 | 対象になるか | やること |
|---|---|---|
| Node.js でサーバーを動かしている(API・SSR・Bot など) | 動いている Node.js が 22・24・26 系の修正版より前なら対象 | Node.js を修正版に更新し、アプリのプロセスを再起動する |
| フロントエンドのビルド(Vite・webpack など)だけに使っている | 開発PC・CI の Node.js の版で決まる。公式に「ビルドだけなら対象外」という記載はない | 開発PC と CI(GitHub Actions など)の Node.js を修正版にそろえる |
| Claude Code・MCP サーバーなどの CLI ツールを使っている | npm(npm install -g)や npx で入れたものは、PC にインストールした Node.js の上で動く | PC の Node.js を更新する。Node.js を組み込んだ単体の実行ファイルとして配布されるツールは、提供元のリリース情報を確認する |
| Docker イメージ(node:24 など)で動かしている | イメージに入っている Node.js の版で決まる。ホスト側の Node.js を更新しても中は変わらない | イメージを取り直してビルドし直し、コンテナを入れ替える |
| サポート終了版(18・20・23・25 など) | 公式は「サポート終了版は常に影響を受ける」としている。修正版は出ない | 22・24・26 系の修正版へ移行する |

確認と更新の手順
1. 動いている Node.js の版を確認する
ターミナル(Windows は PowerShell など)で次を実行します。
node -v
Docker の場合は、コンテナの中の版を確認します(イメージ名は置き換えます)。
docker run --rm イメージ名 node -v
表示された版が、同じ系列の修正版(v22.23.4・v24.22.1・v26.12.1)以上なら、今回の10件は修正済みです。
2. 修正版に更新する
- 公式のインストーラーを使った場合:Node.js 公式のダウンロードページから、使っている系列の最新版を入れ直します。
- nvm・fnm を使っている場合:
nvm install 24・fnm install 24のように系列の番号を指定すると、その系列の最新版が入ります(公式のダウンロードページの例と同じ書き方です)。既定で使う版の切り替えも忘れずに行います。 - Volta を使っている場合:
volta install node@24のように指定し、プロジェクトで固定した版も修正版に上げます。 - Homebrew・Chocolatey などのパッケージマネージャ:更新後に
node -vで修正版か確かめます。Linux ディストリビューションのパッケージは、ディストリビューションのセキュリティ情報を確認します。 - Docker:公式のダウンロードページは
docker pull node:24-slimのような取得例を示しています。タグを取り直してイメージをビルドし直し、コンテナを入れ替えます。Dockerfile で古い版を固定している場合は指定を修正版に変えます。
3. 再起動して、もう一度確認する
動いているプロセスは、更新前の Node.js のまま動き続けます。サーバーやツールを再起動し、もう一度 node -v で修正版になっていることを確かめます。
Brotli の欠陥は Node.js だけの問題ではない
CVE-2026-111497 は、Node.js が内部に組み込んでいる Google の圧縮ライブラリ Brotli の欠陥です。GitHub のアドバイザリ(GHSA-9v8h-qqgm-4m35)は、Brotli のデコーダ(c/dec/decode.c)のバッファオーバーフローで、すべてのプラットフォームの Google Brotli 1.0.3〜1.2.0 が対象としています。細工したデータにより、認証なしの遠隔の攻撃者がメモリの破壊・内容の漏えい・サービス停止、場合によっては任意のコード実行を起こせるおそれがあるとしています。
- 求められている対応:1.0.3〜1.2.0 の Brotli のライブラリや実行ファイルを、1.0.10・1.1.1・1.2.1 のいずれかに更新すること(GHSA の記載)。
- 修正版の公開:Google Brotli のリリース一覧では、v1.2.1・v1.1.1・v1.0.10 が2026年10月21日(協定世界時)に公開され、いずれも「CVE-2026-111497」の修正と書かれています。
- 深刻度の違い:Node.js 公式ブログは「High」、GHSA は CVSS v4 で 9.2(Critical)です。GHSA は米国の脆弱性データベース(NVD)から登録されたもので、GitHub の審査前(Unreviewed)の状態です。
- Node.js での修正:3系列のリリースノートには、Brotli の修正を取り込んだ変更(deps: brotli: cherry-pick)が CVE-2026-111497 として載っています。
GHSA には該当する製品の一覧がありません。Brotli を組み込んだ Node.js 以外のソフトは、それぞれの提供元の情報で該当するか・修正版が出ているかを確認してください。
eMudhra 中間 CA の件(公式に書かれた範囲)
公式ブログは依存部品の更新の一つとして「ca-cert(eMudhra Intermediate CA Compromise)」を挙げ、26・24・22 系が対象としています。項目名は ca-cert(Node.js に組み込まれた認証局の証明書)で、括弧内は「eMudhra の中間 CA(証明書を発行する認証局の一段下の階層)の侵害」への対応を意味します。
3系列のリリースノートには「ルート証明書を NSS 3.131.1 に更新」と「ブロック対象の公開鍵を含む証明書チェーンを拒否する(tls: reject chains containing blocked public keys)」という変更が載っています。ただし、侵害の内容や、どの証明書が対象になったか、これらの変更との対応関係は公式ブログに書かれていません。
公式に書かれていないこと・現時点でわからないこと
- 悪用の有無:公式ブログに、攻撃への悪用を確認したという記載はありません(2026年10月23日時点)。
- 各脆弱性の詳しい内容:Brotli 以外の9件は、公式ブログにタイトル・深刻度・影響系列・報告者しか書かれていません。Node.js のセキュリティポリシーには、CVE の詳細はリリースより遅れて公開され、通常は数日以内になると書かれています。
- 公的機関の注意喚起:IPA の重要なセキュリティ情報と JPCERT/CC の注意喚起の一覧に、Node.js の件は2026年10月23日時点で確認できませんでした。
- 事前の告知:Node.js は今回、修正の1週間前(2026年10月14日)に、同じ公式ブログの記事で「26・24・22 系に最大 High の修正を出す」と予告していました。前日に予告が出た PHP とは時間の幅が異なります。
PHP の重大な脆弱性についてはPHPの重大脆弱性php2shellは自分のサイトも対象?修正版と確認手順、事前告知のしくみはPHPの脆弱性修正はなぜ前日に予告された?事前告知のしくみと前例で取り上げています。
よくある質問
node -v で v20 と表示されました。どうすればいいですか?
20系はサポートが終了しているため、今回の修正版は出ません。Node.js 公式は、サポート終了版はセキュリティリリースのたびに常に影響を受けるとしています。22・24・26 系の修正版(v22.23.4・v24.22.1・v26.12.1 以降)へ移行してください。
Claude Code や MCP サーバーを使っているだけでも更新は必要ですか?
npm や npx で入れて動かしているツールは、PC にインストールした Node.js の上で動きます。その Node.js が修正版より前なら更新してください。Node.js を組み込んだ単体の実行ファイルとして配布されるツールは、提供元のリリース情報を確認してください。
フロントエンドのビルドにしか使っていません。対象ですか?
公式は使い方ごとの危険度を示していません。開発PC や CI の Node.js が 22・24・26 系の修正版より前なら対象の版なので、修正版にそろえてください。
すでに攻撃に悪用されていますか?
2026年10月23日時点で、Node.js 公式ブログに悪用を確認したという記載はありません。IPA と JPCERT/CC の一覧にも、Node.js の注意喚起は確認できませんでした。
Node.js 以外で Brotli を使っているソフトも危ないですか?
GitHub のアドバイザリは、すべてのプラットフォームの Google Brotli 1.0.3〜1.2.0 を対象とし、1.0.10・1.1.1・1.2.1 への更新を求めています。Brotli を組み込んだソフトは、それぞれの提供元の情報で該当するかを確認してください。
あわせて読みたい:PHP脆弱性php2shell、各社の対応状況まとめ【毎日更新】
まとめ
- Node.js 22・24・26 系の修正版より前の版は、2026年10月21日に公表された10件(High 4件・Medium 3件・Low 3件)の対象です。修正版は v22.23.4・v24.22.1・v26.12.1 です。
node -vで版を確認し、修正版に更新して再起動します。Docker はイメージを取り直して作り直し、CI の版の指定も見直します。- 18・20・23・25 系などのサポート終了版には修正版が出ません。22・24・26 系へ移行します。
- Brotli の欠陥(CVE-2026-111497)は Google Brotli 1.0.3〜1.2.0 にあり、Node.js 以外のソフトも各提供元の情報の確認が必要です。
参考(確認日:2026年10月23日)
- Node.js 公式:Wednesday, October 21, 2026 Security Releases
- Node.js 公式:リリースノート v22.23.4/v24.22.1/v26.12.1
- Node.js 公式:リリース一覧(index.json)/リリーススケジュール(GitHub nodejs/release)/End-Of-Life
- Node.js 公式:セキュリティポリシー(SECURITY.md)/ダウンロード
- GitHub Advisory Database:GHSA-9v8h-qqgm-4m35(CVE-2026-111497)
- Google Brotli:Releases(GitHub)
- IPA:重要なセキュリティ情報(2026年度)
- JPCERT/CC:注意喚起(2026年)

コメント