Node.js Vulnerabilities Exposes Windows App to Path Traversal and HashDoS Attacks
2025/07/16 CyberSecurityNews — Node.js プロジェクトが公開したのは、Windows アプリケーションおよび V8 エンジン実装に影響を与える2件の深刻な脆弱性 CVE-2025-27210/CVE-2025-27209 に対処する、セキュリティ更新プログラムの情報である。このセキュリティ更新プログラムが対象とするのは、Node.js のバージョン 20.x/22.x/24.x であり、パス・トラバーサルとハッシュ DoS 攻撃ベクターへの修正が含まれている。これらの脆弱性は、アプリケーションのセキュリティとパフォーマンスに深刻な影響を及ぼすものである。

要約
- Node.js は、2件の重大な脆弱性 CVE-2025-27210 (Windows のパス・トラバーサル)/CVE-2025-27209 (V8 HashDoS 攻撃) を修正した。
- パス・トラバーサルの脆弱性は Node.js の 20.x/22.x/24.x 上の Windows アプリケーションに影響を及ぼし、V8 HashDoS 脆弱性は Node.js 24.x ユーザーだけに影響を及ぼす。
- これらの脆弱性の悪用に成功した攻撃者は、Windows デバイス名を介して不正なファイルにアクセスし、ハッシュ衝突によるサービス中断を引き起こす可能性を得る。
- ユーザーに推奨されるのは、パッチが適用されたバージョン v20.19.4/v22.17.1/v24.4.1 への、速やかなアップデートである。
Windows のパス・トラバーサル脆弱性
この脆弱性 CVE-2025-27210 は、CON/PRN/AUX などの Windows デバイス名に関連するものであり、過去にパッチ適用済みの脆弱性 CVE-2025-23084 の不備を突くものである。この脆弱性の悪用に成功した攻撃者は、Node.js の path.normalize() 関数内の、パス・トラバーサル保護メカニズムを回避する可能性を手にする。
この脆弱性が影響を及ぼす範囲は、Node.js のバージョン 20.x/22.x/24.x で path.join() API を使用している、すべての Windows ユーザーとなる。
Windows の予約済みデバイス名を取り込んだファイル・パスを処理する際に、path.normalize() 関数は適切なサニタイズを行わない。そのため、攻撃者はディレクトリ構造をトラバーサルし、想定外の機密ファイルへのアクセスを達成し得る。
このディレクトリ・トラバーサル攻撃により、アプリケーションの権限に応じた不正なファイルシステム・アクセスが生じる。それにより、コンフィグ・ファイルの露出や、任意のファイルの読み取りなどが引き起こされるという。
この実装上の欠陥は、正規化プロセスにおいて、オペレーティング・システムが特別なシステム・ファイルとして扱う、Windows 固有のデバイス名が検出された場合に発生します。
具体的に言うと、”../../../CON/../../sensitive.txt” のような悪意のパスを構築する攻撃者は、親ディレクトリへのアクセスを防止するための、セキュリティ制御の回避を達成する。
V8 HashDoS 脆弱性
2つ目の脆弱性 CVE-2025-27209 は、Node.js v24.0.0 で使用される V8 JavaScript エンジンに影響を及ぼすことで、ハッシュ・サービス拒否 (HashDoS) 攻撃を許すものである。
この深刻な脆弱性は、rapidhash という実装を用いる V8 エンジンが、文字列ハッシュを計算する方法に起因し、その結果として、ハッシュ衝突に基づく脆弱性が再び持ち込まれる形となっている。
HashDoS 攻撃では、ハッシュ・シードを知らない攻撃者であっても、入力文字列を操作することで多数のハッシュ衝突が引き起こせる。
その結果として、アルゴリズム的な複雑性を突く攻撃が成立し、ハッシュ・テーブルの処理が O(1) から O(n) に低下することで、アプリケーションにおける深刻な処理の遅延や、完全なサービス停止にいたるという。
従来からのハッシュ衝突攻撃では、内部ハッシュ関数の知識が必要だったが、この脆弱性では、衝突しやすい文字列を構築する攻撃者により、ハッシュ・テーブルの性能が最悪の状態に陥るという。
したがって、ハッシュ・ベースのデータ構造を用いて、ユーザーが制御するデータを処理するアプリケーションは、CPU 枯渇攻撃に対して脆弱になるという。
実際の運用環境におけるアプリケーションの可用性に、この問題が深刻な影響を与える可能性があると判断した Node.js プロジェクトは、V8 チームによる対応とは別に、自身のセキュリティ脆弱性として優先的に対処した。
| CVE | Title | Affected Products | CVSS 3.1 Score | Severity |
| CVE-2025-27210 | Windows Device Names (CON, PRN, AUX) Bypass Path Traversal Protection in path.normalize() | Node.js 20.x, 22.x, 24.x | 7.5 | High |
| CVE-2025-27209 | HashDoS in V8 | Node.js 24.x | 7.5 | High |
Node.js アプリケーションを実行している、すべての組織に対して推奨されるのは、最新のパッチ適用バージョン v20.19.4/v22.17.1/v24.4.1 へと、速やかにアップデートすることだ。
このセキュリティ・リリースでは、脆弱性 CVE-2025-27210/CVE-2025-27209 が包括的に修正されている。これらの問題は、Node.js セキュリティ・チームと、脆弱性研究者である oblivionsage/sharp_edged/RafaelGSS/targos の協力により対処されたという。
Node.js の2つのに脆弱性が FIX しました。一般的な関数や実装の問題が、深刻な結果をもたらすようです。path.normalize() やハッシュ処理のような、基本的な仕組みであってもリスクになり得ると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、Node.js で検索も、ご参照ください。
You must be logged in to post a comment.