| タイトル | shell-quote projectのshell-quoteにおけるアルゴリズムの複雑さに関する脆弱性 |
|---|---|
| 概要 | shell-quote バージョン 1.8.5 より前の parse() 関数では、Array.prototype.concat を reduce の累積変数として使用して解析済みトークンを確定しており、そのため毎回配列全体が再割り当ておよびコピーされてしまいます。その結果、parse() は入力トークン数に対して O(n^2) の時間で動作します。攻撃者は、parse() を呼び出すコードパスに攻撃者制御可能な文字列を渡すことができ(シェルのメタ文字は不要で、単純な空白区切りの単語で十分です)、少量の入力でシングルスレッドの Node.js イベントループを長時間ブロックさせてサービス拒否を引き起こす可能性があります。コードの実行やデータの漏洩は発生せず、影響は可用性に限られます。本問題はバージョン 1.8.5 で修正されました。 |
| 想定される影響 | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| 対策 | ベンダ情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年6月25日0:00 |
| 登録日 | 2026年6月29日11:20 |
| 最終更新日 | 2026年6月29日11:20 |
| CVSS3.0 : 重要 | |
| スコア | 7.5 |
|---|---|
| ベクター | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| shell-quote project |
| shell-quote 1.9.0 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年06月29日] 掲載 |
2026年6月29日11:20 |
| 概要 | shell-quote prior to 1.8.5 finalizes parsed tokens in parse() using Array.prototype.concat as a reduce accumulator, which reallocates and copies the entire growing array on every iteration. As a result parse() runs in O(n^2) time relative to the number of input tokens. An attacker who can supply an attacker-controlled string to any code path that calls parse() (no shell metacharacters are required; plain space-separated words suffice) can block the single-threaded Node.js event loop for an extended period with a small input, resulting in a denial of service. There is no code execution or data disclosure; impact is to availability only. Fixed in 1.8.5. |
|---|---|
| 公表日 | 2026年6月25日14:16 |
| 登録日 | 2026年6月27日4:25 |
| 最終更新日 | 2026年6月27日4:03 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:shell-quote_project:shell-quote:*:*:*:*:*:node.js:*:* | 1.9.0 | ||||