CVE-2026-33750brace-expansion库在处理特定模式的字符串时存在安全漏洞。当解析器遇到步长值为0的brace模式(例如`{1..2..0}`)时,会导致序列生成循环无限运行。这会使进程持续挂起并分配大量内存,最终引发拒绝服务。该漏洞影响多个旧版本分支,攻击者可通过诱导应用解析恶意字符串来利用此漏洞。官方已发布修复版本,建议用户尽快升级。
该漏洞源于brace-expansion库在实现序列展开逻辑时的缺陷。根据源码分析,当库解析类似`{start..end..step}`的模式时,会使用循环来生成中间字符串。在受影响的版本中,代码未对`step`参数是否为0进行校验。当`step`为0时,循环计数器的值无法更新,导致循环终止条件永远无法满足,从而陷入死循环。由于Node.js的单线程特性,这种计算密集型的死循环会完全阻塞事件循环,导致服务无法响应其他请求。此外,随着循环运行,内存消耗会急剧增加,可能导致系统内存耗尽(OOM)。攻击者无需认证,只需控制传递给`expand()`函数的输入即可触发攻击。