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 行为相匹配。 ### 解决方法

修复方法

暂无官方补丁。请查找临时解决方案或持续关注更新。

自动监控您的依赖项

当新漏洞影响您的项目时获得提醒。

免费开始