Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-106446— Handlebars: JavaScript Injection via AST Type Confusion in compile (Program.blockParams)

Quick assessment

Affected
handlebars-lang handlebars.js
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Handlebars 提供了强大的功能,使用户能够构建语义化的模板。从版本 4.0.0 到 4.7.10,Handlebars.compile() 和 Handlebars.precompile() 方法接受已预解析的 AST(抽象语法树)对象,但仅对部分 PathExpression(路径表达式)、NumberLiteral(数字字面量)和 BooleanLiteral(布尔字面量)值进行验证。此问题绕过了版本 4.7.9 中为修复 CVE-2026-33937 而引入的 AST 验证机制。攻击者若能提供对象而非

CVSS 9.8 · Critical

Affected Version Matrix 1

VendorProduct Version RangeStatus
handlebars-lang handlebars.js >= 4.0.0, < 4.7.10 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-106446

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Handlebars: JavaScript Injection via AST Type Confusion in compile (Program.blockParams)
Source: CVE Program / CVE List V5
Vulnerability Description
Handlebars provides the power necessary to let users build semantic templates. From 4.0.0 until 4.7.10, Handlebars.compile() and Handlebars.precompile() accept pre-parsed AST objects while validating only selected PathExpression, NumberLiteral, and BooleanLiteral values. This issue bypasses the AST validation introduced in version 4.7.9 for CVE-2026-33937. An attacker who can supply an object instead of a template string can place JavaScript expressions in unchecked values such as Program.blockParams.length, a non-PathExpression parameter depth, a non-string StringLiteral.value, or a non-string PathExpression.original. The compiler emits those values into generated JavaScript, causing code execution in the server process when compile output renders or wherever precompile output is loaded. Applications that pass only template strings are not affected. This issue is fixed in version 4.7.10.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
对生成代码的控制不恰当(代码注入)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
handlebars-lang handlebars.js >= 4.0.0, < 4.7.10 -

II. Public POCs for CVE-2026-106446

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-106446

请登录查看更多情报信息。

Other References for CVE-2026-106446 (4)

Same Patch Batch · handlebars-lang · 2026-10-06 · 3 CVEs total

CVE-2026-106445 9.2 CRITICAL Handlebars: JavaScript Injection via Own Property Check Bypass
CVE-2026-106444 4.7 MEDIUM Handlebars: JavaScript Injection via Unsafe Inline Embedding of Precompiled Templates

IV. Related Vulnerabilities

V. Comments for CVE-2026-106446

No comments yet


Leave a comment