Node.jsにも重要な脆弱性、修正版が公開。PHPの陰で見落としがちな更新と、確認のしかた
PHPと同じ10月21日、Node.jsでもセキュリティの修正版(22.23.4/24.22.1/26.12.1)が公開されました。深刻度Highの4件を含む10件の弱点の中身と、自分に関係があるかの見分け方、バージョンの確かめ方と更新のしかたをまとめました。
10月21日は、PHPの“致命的”な脆弱性の修正版が出て話題になった日でした。実は同じ日に、Webサービスやアプリ作りでよく使われる**「Node.js(ノード・ジェイエス)」でも、セキュリティの修正版が公開**されています。
PHPのニュースに隠れて、日本ではほとんど話題になっていません。この記事では、何が直されたのか、自分に関係があるかどうかの見分け方、そして更新のしかたをまとめます。
この記事のポイント
- 直された弱点は10件。深刻度「High(高)」が4件あり、外から悪いプログラムを動かされるおそれがあるものも含まれる
- 修正版は 22.23.4/24.22.1/26.12.1。これより前の版を使っている人は更新を
- Node.js 20 以前はサポートが終わっていて、修正版が出ない。使っている人は新しい版への移行を
そもそもNode.jsとは?
Node.jsは、Webページを動かすための言語「JavaScript」を、ブラウザの外(サーバーやパソコンの上)でも動かせるようにするソフトです。
- Webサービスのサーバー側の処理
- サイトを作るための道具(ビルドツールなど)
- パソコン用のアプリの土台
など、使われている場所はとても広く、ふだん目にしないところで動いていることが多いソフトです。
何が直されたの?
Node.jsの公式発表によると、今回直された弱点(脆弱性)は10件です。深刻度の内訳と、主なものは次のとおりです。
| 深刻度 | 件数 | 主な内容 |
|---|---|---|
| High(高) | 4件 | 圧縮データの展開で、外から悪いプログラムを動かされるおそれ/接続先が本物かを確かめる「証明書のチェック」をすり抜けられるおそれ(2件)/名前の問い合わせで、途中の文字が切り捨てられる |
| Medium(中) | 3件 | ランダムな値が、起動のしかたによって毎回同じになることがある など |
| Low(低) | 3件 | 「ファイルにさわってよい範囲」の制限をすり抜けられる など |
とくに気をつけたい2つ
1. 圧縮データの展開でプログラムを動かされるおそれ
Webでは、データを小さくして速く送るために「Brotli(ブロトリ)」という圧縮のしかたがよく使われます。Node.jsでこれを元に戻す(展開する)処理に不具合があり、悪意のあるデータを読みこむと、決められた場所の外にデータを書きこんでしまうことがありました。公式は、これを利用して外から好きなプログラムを動かされる(リモートコード実行)おそれがあるとしています。
外のサイトからデータを取ってくるサービスや、利用者から届いたデータを扱うサービスほど、関係が深くなります。
2. 「接続先が本物か」のチェックをすり抜けられるおそれ
安全な通信(https)では、接続先が本物かどうかを「証明書」で確かめています。今回、IPアドレスの書き方を少し変える(全角の数字で書くなど)ことで、このチェックをすり抜けられる不具合が見つかりました。悪用されると、偽物の相手と、本物だと思いこんで通信してしまうおそれがあります。
あわせて更新された部品
Node.jsが中で使っている部品も、まとめて更新されています。その中には、安全な通信のための証明書を発行する会社(認証局)のひとつ、インドの「eMudhra」で起きた問題への対応も含まれています。Node.jsが「信頼してよい」と判断する証明書の一覧を、新しくしたものです。
自分は関係ある?
| あなたの立場 | 関係するか | やること |
|---|---|---|
| Node.jsでWebサービスやサイトを動かしている | 関係する | 修正版に更新し、サービスを再起動する |
| サイト作りや開発で、パソコンにNode.jsを入れている | 関係する | パソコンのNode.jsを修正版に更新する |
| Node.jsを使った「サービス」の利用者 | 自分で何かする必要は基本的にない | サービス側の対応を待つ |
| レンタルサーバーでWordPressだけを使っている | 基本的に関係ない(PHPのほうは要確認) | PHPの脆弱性の記事を確認 |
パソコン用のアプリの中には、Node.jsを中に組みこんで作られているものもあります。その場合、パソコンにNode.jsを入れていなくても、アプリそのものの更新で直るしくみです。アプリの更新のお知らせが来たら、早めに当てておきましょう。
修正版と、更新のしかた
修正版は、使っているシリーズごとに次のとおりです(公式の表をもとに作成)。
| シリーズ | いまの状態 | 修正版 | サポートの終わり |
|---|---|---|---|
| Node.js 26 | 最新版(10月28日から長期サポート版に) | 26.12.1 | 2029年4月 |
| Node.js 24 | 長期サポート版 | 24.22.1 | 2028年4月 |
| Node.js 22 | 長期サポート版(修正のみ) | 22.23.4 | 2027年4月 |
| Node.js 20 以前 | サポート終了 | 出ない | 2026年4月に終了済み |
いま使っている版を確かめるには
ターミナル(Windowsならコマンドプロンプト)で、次のように入力します。
node -v
v24.22.1 のように表示されます。上の表の修正版より数字が小さければ、更新が必要です。
更新のしかた
- 公式サイトから入れた人:Node.jsの公式サイトから、同じシリーズの新しい版をダウンロードして入れ直します
- Homebrew や nvm などの道具で入れた人:その道具で、新しい版に入れ替えます
- サーバーで動かしている人:更新したあと、Node.jsで動いているサービスの再起動を忘れずに。古い版のまま動き続けてしまいます
Node.js 20 以前を使っている人は
Node.js 20は2026年4月末でサポートが終わっています。公式は「サポートが終わった版は、セキュリティの修正が出るたびに、常に影響を受けると考えて」としています。今回の弱点も直されないので、24 か 26 への移行を考えましょう。
私も、手元の環境のNode.jsを24.22.1に更新しました。公式サイトから新しい版を入れ直すだけで、特別な作業はいりませんでした。
なぜ見落とされやすいの?
同じ日に出たPHPの脆弱性は、WordPressなどを通して使っている人が多く、深刻度も最も重い“致命的”でした。そのため、ニュースはPHPに集まりました。
一方、Node.jsは「自分で入れた覚えはないけれど、実は使っている」ことが多いソフトです。開発の仕事をしている人のパソコンや、Webサービスの裏側など、ふだん意識しないところに入っているからこそ、こうしたお知らせは見逃さないようにしたいところです。
Node.jsの公式では、セキュリティのお知らせだけを届けるメーリングリストも案内しています。開発でNode.jsを使っている人は、登録しておくと安心です。
このブログの考え方
PHPの記事でも書いたとおり、このブログの仕組み(CMS)はNode.jsで作っています。だからこそ、PHPのニュースの陰で、こちらの修正版が静かに出ていたことには、ひやりとしました。
話題になっているかどうかと、自分に関係があるかどうかは別の話です。ニュースの大きさと、自分への影響のあいだを見きわめて、関係があるものは静かに、でも確実に更新しておきたいところです。
まとめ
- 10月21日、Node.jsのセキュリティ修正版(22.23.4/24.22.1/26.12.1)が公開された
- 直された弱点は10件。そのうち4件が「High」で、外からプログラムを動かされるおそれや、証明書のチェックをすり抜けられるおそれがある
- Node.jsでサービスを動かしている人、パソコンに入れている人は更新を。サーバーは再起動も忘れずに
- Node.js 20 以前は修正版が出ないので、新しい版への移行を
参考資料
- Wednesday, October 21, 2026 Security Releases(Node.js、2026年10月21日・英語)
- Node.js Releases(Node.js・英語)
- Node.js Security(Node.js・英語)
※ 記事の内容は、2026年10月22日時点の情報をもとにしています。



