CVE-2026-102422 in shell-quote
摘要
由 VulDB • 2026-09-29
shell-quote 的 `quote()` 函数将 `{ comment }` 令牌输出为以 `#` 开头并跟随其文本的形式,这会注释掉 shell 行的其余部分,包括任何后续字符串令牌的起始引号。因此,该后续字符串中的行终止符(\n、\r、U+2028、U+2029)会结束注释,而字符串的剩余部分将被解析为 shell 输入:`quote(['echo', 'ok', { comment: 'x' }, 'a\nid;#'])` 会在 sh、bash、dash、ksh 和 zsh 中执行 `id`。`parse()` 函数会为一个单词中间的 `#`(例如 `http://example.com/#frag`)发出注释令牌,因此那些将 `parse()` 的输出与另一个不受信任的字符串结合使用的调用方会受到此漏洞影响,例如 `quote(parse(untrustedCommand).concat(untrustedArg))`。CVE-2026-9277 的修复方案拒绝了评论文本本身的行终止符,但未拒绝其后的令牌中的行终止符。在版本 1.11.0 中已修复:当 `{ comment }` 令牌之后的字符串包含行终止符时,`quote()` 将抛出 `TypeError`。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.