UNKNOWNCVE-2026-33750
brace-expansion:零步长序列导致进程挂起和内存耗尽
平台
nodejs
组件
brace-expansion
已修复版本
5.0.5
### 影响 步长值为零的 brace 模式(例如,`{1..2..0}`)会导致序列生成循环无限期运行,使进程挂起数秒并分配大量内存。 相关循环: https://github.com/juliangruber/brace-expansion/blob/daa71bcb4a30a2df9bcb7f7b8daaf2ab30e5794a/src/index.ts#L184 `test()` 是以下之一 https://github.com/juliangruber/brace-expansion/blob/daa71bcb4a30a2df9bcb7f7b8daaf2ab30e5794a/src/index.ts#L107-L113 增量计算为 `Math.abs(0) = 0`,因此循环变量永远不会前进。在一台测试机器上,该进程挂起约 3.5 秒,并分配大约 1.9 GB 的内存,然后抛出 `RangeError`。将 max 设置为任何值都无效,因为该限制仅在输出组合步骤中检查,而不是在序列生成期间检查。 这会影响任何将不受信任的字符串传递给 expand() 的应用程序,或者错误地将步长值设置为 `0`。这包括构建在 minimatch/glob 之上的工具,这些工具从 CLI 参数或配置文件中解析模式。所需的输入只有 10 个字节。 ### 补丁 升级到版本 - 5.0.5+ 步长增量 0 现在被清理为 1,这与 bash 行为相匹配。 ### 解决方法
修复方法
暂无官方补丁。请查找临时解决方案或持续关注更新。