CVE-2026-33940Handlebars 4.0.0至4.7.8版本存在严重安全漏洞。攻击者通过在模板上下文中注入精心设计的对象,可绕过`resolvePartial()`的守卫机制,导致未解析的部分被传递给编译器。这会触发服务器端执行任意JavaScript代码,造成远程代码执行风险。
该漏洞源于Handlebars在处理动态部分查找时的逻辑缺陷。当`resolvePartial()`无法解析部分名称时,`invokePartial()`会尝试将返回值传递给`env.compile()`进行编译。攻击者若能控制动态查找的返回值(如使用`{{> (lookup ...)}}`),可传入一个符合Handlebars AST结构的恶意对象。由于该对象被视为有效的模板源代码,编译并运行后,嵌入在AST中的恶意代码将在服务器端被执行,从而实现无需认证的远程代码攻击。