CVE-2026-33937
Handlebars.js 存在通过 AST 类型混淆导致的 JavaScript 注入漏洞
- 已发布
- 2026年3月27日
- 已更新
- 2026年9月4日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月25日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 75.9%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Handlebars 提供了足够强大的能力,让用户能够构建语义化模板。在 4.0.0 至 4.7.8 版本中,`Handlebars.compile()` 除了接受模板字符串外,还接受预解析的 AST 对象。`NumberLiteral` AST 节点的 `value` 字段会直接输出到生成的 JavaScript 中,且不进行引号包裹或净化处理。因此,能够向 `compile()` 提供精心构造的 AST 的攻击者可以注入并执行任意 JavaScript,从而导致服务器上的远程代码执行。版本 4.7.9 修复了该问题。目前有一些可用的规避方案。在调用 `Handlebars.compile()` 之前验证输入类型;确保参数始终为 `string`,绝不要是普通对象或 JSON 反序列化后的值。如果模板在构建时已预编译,请在服务器上使用仅运行时版本的 Handlebars(`handlebars/runtime`);这样 `compile()` 将不可用。
来源
4- CVE-2026-33937漏洞利用
Handlebars.js AST注入RCE的Python POC与漏洞利用,Handlebars.js 4.0.0至4.7.8版本受影响。CVSS评分:9.8 严重。
CVE-2026-33937 的概念验证漏洞利用程序,这是一个 Handlebars AST 注入漏洞,可导致 Node.js 中的远程代码执行。演示了精心构造的 AST 载荷,并提供缓解指导。
Handlebars.js AST 注入远程代码执行漏洞
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。