漏洞概述 LiquidJS 的 过滤器在启用 选项时存在内存计算错误。该过滤器在调用 时,仅计算输入字符串、匹配模式和替换内容的长度之和。然而,实际输出(通过 生成)的大小可能呈二次方增长。攻击者可以通过控制模板内容绕过 保护,导致内存耗尽。 影响范围 此漏洞影响明确启用了 选项以处理不受信任模板的用户(例如多租户 SaaS 平台)。攻击者可以分配比配置限制多约 2,500 倍的内存,可能导致以下后果: Node.js 进程内存溢出崩溃。 同一进程上的其他用户遭受拒绝服务(DoS)。 主机资源耗尽。 修复方案 修复方案是在内存限制器中计算实际输出大小,而不是仅计算输入长度。具体逻辑是计算原始字符串长度,加上每个匹配项中替换内容与模式内容的差值。 修复代码:** 利用代码 (PoC)