当サイトのリンクには広告が含まれています

IT・Web 公開日

Node.jsにも重要な脆弱性、修正版が公開。PHPの陰で見落としがちな更新と、確認のしかた

PHPと同じ10月21日、Node.jsでもセキュリティの修正版(22.23.4/24.22.1/26.12.1)が公開されました。深刻度Highの4件を含む10件の弱点の中身と、自分に関係があるかの見分け方、バージョンの確かめ方と更新のしかたをまとめました。

Node.jsの修正版を表す、ターミナルの画面と、チェックマークを囲む回転の矢印のイラスト

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 以前は修正版が出ないので、新しい版への移行を

参考資料

※ 記事の内容は、2026年10月22日時点の情報をもとにしています。