CVE-2026-33938Handlebars是一个流行的语义模板引擎。在4.0.0至4.7.8版本中,特殊变量`@partial-block`被存储在模板数据上下文中,并且可以通过接受任意对象的辅助函数进行访问和修改。当辅助函数使用精心构造的Handlebars抽象语法树(AST)覆盖`@partial-block`时,随后的`{{> @partial-block}}`调用将编译并执行该AST。这一机制允许攻击者在服务器端执行任意JavaScript代码,从而完全控制受影响的服务器。
该漏洞的核心在于Handlebars对模板上下文中特殊变量`@partial-block`的处理不当。在受影响版本中,`@partial-block`被视为普通上下文数据,允许辅助函数对其进行修改。攻击者可以利用接受任意对象作为参数的辅助函数,注入一个恶意的Handlebars AST对象。当模板引擎后续调用`{{> @partial-block}}`时,它会尝试编译这个被替换的AST。由于编译过程未对AST来源进行严格校验,恶意的JavaScript代码(如通过`MustacheStatement`或其他表达式)被编译并执行,导致远程代码执行(RCE)。此漏洞无需用户交互即可通过网络触发。