【原创发现】Handlebars.js validateAstNode 原型链绕过远程代码执行漏洞(CVE-2026-106446)安全风险通告

· 2026-10-09 11:20 · 26 阅读

奇安信 CERT 2026-10-09 11:20 北京

致力于第一时间为企业级用户提供权威漏洞情报和有效解决方案。

● 点击↑蓝字关注我们,获取更多安全风险通告


漏洞概述

漏洞名称

Handlebars.js validateAstNode 原型链绕过远程代码执行漏洞

漏洞编号

QVD-2026-65364,CVE-2026-106446

公开时间

2026-10-06

影响量级

十万级

奇安信评级

高危

CVSS 3.1分数

9.8

威胁类型

代码执行

利用可能性

高

POC状态

已公开

在野利用状态

未发现

EXP状态

已公开

技术细节状态

已公开

危害描述:攻击者无需认证即可绕过上游安全校验后在渲染进程中执行任意命令,导致服务器失陷;容器场景可导致容器被完全控制。

01

漏洞详情

>>>>

影响组件

Handlebars 是一款广泛使用的开源 JavaScript 语义模板引擎,支持服务端(Node.js)与浏览器端渲染,被大量 Web 应用、报表 / 邮件 / 通知模板系统所引用。

>>>>

漏洞描述

近日,奇安信CERT监测到Handlebars.js validateAstNode 原型链绕过远程代码执行漏洞(CVE-2026-106446),该漏洞源于4.7.9 为修复 CVE-2026-33937(AST 类型混淆导致 JavaScript 注入)而引入 validateAstNode。但该校验器仅遍历节点的自有可枚举属性(`Object.keys`),而代码生成器使用普通属性访问,会沿原型链读取字段。攻击者将整个恶意 Program AST 挂载到传入 compile() 的对象的原型上,即可令校验器看到“空对象”而跳过,编译器却照常读取并执行恶意字段。目前该漏洞PoC与技术细节已公开。鉴于该漏洞影响范围较大,建议客户尽快做好自查及防护。

>>>>

利用条件

目标应用将攻击者可控对象经 Object.assign / Object.create / 深合并后传入 Handlebars.compile() / precompile()。

02

影响范围

>>>>

影响版本

4.0.0 <= handlebars.js <= 4.7.9

Handlebars.js <= 4.7.8  受 CVE-2026-33937 直接形态影响

>>>>

其他受影响组件

存在 Object.assign({}, userJson)、Object.create(userObj)、lodash.merge / defaultsDeep 等合并用户输入后再 compile 的应用。

03

复现情况

目前,奇安信CERT已成功复现Handlebars.js validateAstNode 原型链绕过远程代码执行漏洞(CVE-2026-106446),截图如下:

04

处置建议

>>>>

安全更新

目前官方已有可更新版本,建议受影响用户升级至最新版本:

Handlebars.js >= 4.7.10

官方下载地址:

https://github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.10

临时缓解措施:

1. 入口拒绝非字符串;

2. 上游修复方向:在 validateAstNode 中拒绝原型非 Object.prototype / null 的节点,使“校验遍历”与“编译器读取”一致:

3. 避免原型污染:禁止对用户 JSON 使用 Object.assign / 深合并;JSON.parse 结果直接传递前做白名单校验。

4. 架构措施:使用 handlebars/runtime + 预编译产物,移除运行时 compile。

05

参考资料

2026年10月09日,奇安信 CERT发布安全风险通告。

07

漏洞情报服务

「奇安信漏洞情报平台」重磅上线,诚邀您来体验:

图片

图片

图片

奇安信 CERT

致力于第一时间为企业级用户提供权威漏洞情报和有效解决方案。

点击↓阅读原文,到ALPHA威胁分析平台订阅更多漏洞信息。

阅读原文

跳转微信打开

本文转载自微信公众号「奇安信CERT」,查看原文。版权归原作者所有,如有侵权请联系删除。