CVE-2026-106446 · GHSA-8r5x-fm3f-whwj
Handlebars: JavaScript Injection via AST Type Confusion in compile (bypass of CVE-2026-33937)
- Risk score
- 84/100
- CVSS
- 9.8 v3.1
- Exploit chance (30 days)
- 0.6%
- Published
- 6 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- 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 introduc…
- Affected
- handlebars (npm) >= 4.0.0, <= 4.7.9
- Fix
- Upgrade handlebars to 4.7.10 or later.
- Exploitation
- Public proof of concept
Story map
At a glance
handlebars: Red, act today. 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 introduc…
The flaws
- CVE-2026-106446: Handlebars: JavaScript Injection via AST Type Confusion in compile (bypass of CVE-2026-33937) (CVSS 9.8 · EPSS 1%)
- CVE-2026-106445: Handlebars: JavaScript Injection via Own Property Check Bypass (CVSS 9.2 · EPSS 0%)
- CVE-2026-106444: Handlebars: JavaScript Injection via Unsafe Inline Embedding of Precompiled Templates (CVSS 4.7 · EPSS 0%)
The fix
Upgrade handlebars: 4.7.10 or later on your release line
Who is exposed: handlebars (npm) >= 4.0.0, <= 4.7.9
Where it stands
- Public proof of concept
Connects to
- Same weakness: Code injection (CWE-94). 239 other warnings in 30 days
Why it is Red
- CVSS 9.8 critical
- Public exploit or proof of concept referenced
- Remotely exploitable without logging in
- On your watchlist: npm
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| handlebars | npm | >= 4.0.0, <= 4.7.9 | 4.7.10 |
References
- https://github.com/advisories/GHSA-8r5x-fm3f-whwj
- https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-8r5x-fm3f-whwj
- https://nvd.nist.gov/vuln/detail/CVE-2026-106446
- https://github.com/handlebars-lang/handlebars.js/pull/2185
- https://github.com/handlebars-lang/handlebars.js/commit/703fdcc5fd6cc8d1cc0c33cc19de40c467c4b8d2
- https://github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.10
- https://github.com/advisories/GHSA-8r5x-fm3f-whwj
Original 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.
Last activity 6 Oct 2026. Patch Forecast updates every hour.