Node.js Alerts: High-Severity Flaw (CVE-2025-23166) Risks Remote System Crashes! Update Immediately!
2025/05/15 SecurityOnline — Node.js チームの最新のセキュリティ情報で公開されたのは、24.x/23.x/22.x/20.x リリース・ライン向けの重要な更新プログラムである。これらのパッチは、深刻度が Low から High までの、複数の脆弱性を修正するものだ。

CVE-2025-23166 (High):非同期の暗号処理によるプロセス・クラッシュ
この脆弱性は、非同期暗号化処理における、不正なエラー処理に起因する。Node.js のアドバイザリでは、「C++ メソッド SignTraits::DeriveBits() は、ユーザーが指定した信頼できない入力が原因となり、バックグラウンド・スレッド実行中に誤って ThrowException() を呼び出す可能性がある。それにより、Node.js プロセスがクラッシュする恐れがある。一般的に、この種の暗号化操作は、信頼できない入力に対して適用される。したがって、このメカニズムは、攻撃者がリモートから Node.js ランタイムをクラッシュさせる可能性を潜在的に有している」と説明されている。
この脆弱性は、アクティブなリリース・ライン (20.x/22.x/23.x/24.x) の、すべてのユーザーに影響する。この脆弱性が悪用されると、Node.js プロセスがクラッシュしてサービス拒否 (DoS) が発生し、重要なサービスが停止する可能性がある。
CVE-2025-23167 (Medium):llhttp HTTP ヘッダーの脆弱性
この脆弱性は、Node.js で使用される HTTP パーサーである llhttp における、HTTP ヘッダーのブロック終了処理の不備に起因する。アドバイザリでは、「Node.js 20 における HTTP パーサーの不具合により、HTTP/1 ヘッダーが、本来必要な \r\n\r\n ではなく、\r\n\rX で不正に終了する可能性がある」と説明されている。この不一致は、一見すると些細だが、重大な影響を及ぼす可能性がある。 Node.js Project は、「この不一致により、リクエスト・スマグリングが可能になるため、攻撃者は、プロキシ・ベースのアクセス制御を回避して、不正なリクエスト送信の機会を得る」と警告している。
この脆弱性の影響を受けるのは、llhttp 9 未満のバージョンを実行している Node.js 20.x ユーザーに限られている。この脆弱性は、プロキシ制御をバイパスにより、不正アクセスを引き起こし、機密情報や内部システム情報の漏洩にいたる可能性がある。この脆弱性は、llhttp バージョン 9 以降で修正され、正しいヘッダー終了が強制されるようになった。
CVE-2025-23165 (Low):ファイル読み取り操作におけるポインタ破損
この脆弱性は、最初の引数 (args[0]) が文字列である場合に、node::fs::ReadFileUtf8 関数内でポインタが破損するというものである。Node.js では、ReadFileUtf8 の内部バインディングにおいて、uv_fs_s.file に関連するポインタが破損してメモリ・リークが発生する。アドバイザリでは、「UTF-16 のパス・バッファが割り当てられた後に行われる、ファイル・ディスクリプタの設定による上書きが原因である。その結果として、呼び出しのたびに回復不能なメモリ・リークが発生し、この状態が繰り返されると、メモリが際限なく消費され、最終的にはサービス拒否 (DoS) に至る可能性がある」と警告されている。
このメモリ・リークは、Node.js リリースライン v20/v22 において、ReadFileUtf8 に依存する API に影響する。深刻度は Low だが、持続的なメモリ・リークは、最終的にパフォーマンスを低下させ、システムメモリを枯渇させてサービス拒否につながる可能性がある。
今すぐアップデートを!
これらのリスクを軽減するため、ユーザーに推奨されるのは、ただちに最新のパッチ適用バージョンにアップデートすることである:
広く利用される Node.js だけに、ダウン・ストリームへの影響が心配ですね。ご利用のチームは、ご注意ください。最近の Node.js 関連ポストは、2025/03/18 の「Node.js ライブラリ xml-crypto の脆弱性 CVE-2025-29774/29775 が FIX:IoC も提供」です。よろしければ、Node.js で検索と併せて、ご参照ください。
You must be logged in to post a comment.