shell-quote projectのshell-quoteにおけるアルゴリズムの複雑さに関する脆弱性
タイトル 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 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月29日]
  掲載
2026年6月29日11:20

NVD脆弱性情報
CVE-2026-13311
概要

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
関連情報、対策とツール
共通脆弱性一覧