CVE-2026-33940: Handlebars.js has JavaScript Injection via AST Type Confusion when passing an object as dynamic partial
Description
Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, a crafted object placed in the template context can bypass all conditional guards in `resolvePartial()` and cause `invokePartial()` to return `undefined`. The Handlebars runtime then treats the unresolved partial as a source that needs to be compiled, passing the crafted object to `env.compile()`. Because the object is a valid Handlebars AST containing injected code, the generated JavaScript executes arbitrary commands on the server. The attack requires the adversary to control a value that can be returned by a dynamic partial lookup. Version 4.7.9 fixes the issue. Some workarounds are available. First, use the runtime-only build (`require('handlebars/runtime')`). Without `compile()`, the fallback compilation path in `invokePartial` is unreachable. Second, sanitize context data before rendering: Ensure no value in the context is a non-primitive object that could be passed to a dynamic partial. Third, avoid dynamic partial lookups (`{{> (lookup ...)}}`) when context data is user-controlled.
Vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H · CWE-843, CWE-94
Status incidents that name it
- Wiz Some customers may see critical issues created from incorrectly classified vulnerability findings for CVE-2026-4800, CVE-2026-33937, CVE-2026-33938, and CVE-2026-33940· No impact listed · names this CVE
“…created from incorrectly classified vulnerability findings for CVE-2026-4800, CVE-2026-33937, CVE-2026-33938, and CVE-2026-33940 This incident has been resolved. This incident has been resolved. A fix has been implemented and we are monitoring…”
Affected vendors and products
handlebars-lang: handlebars.jsRed Hat: Cluster Observability Operator 1.5.0Red Hat: Cryostat 4Red Hat: Logging Subsystem for Red Hat OpenShiftRed Hat: Red Hat Data Grid 8Red Hat: Red Hat Enterprise Linux 10Red Hat: Red Hat Enterprise Linux 7Red Hat: Red Hat Enterprise Linux 8Red Hat: Red Hat Enterprise Linux 9Red Hat: Red Hat OpenShift AI (RHOAI)Red Hat: Red Hat OpenShift Dev Spaces 3.27Red Hat: Red Hat Process Automation 7
References
- CVE record on cve.org (opens in new tab)
- NVD entry (opens in new tab)
- github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe… (opens in new tab)
- github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.9 (opens in new tab)
- github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6 (opens in new tab)
- CVE records from the CVE Program (cve.org). CVE® is a registered trademark of The MITRE Corporation. (opens in new tab)
- This product uses data from the NVD API but is not endorsed or certified by the NVD. (opens in new tab)
- Known Exploited Vulnerabilities catalog from CISA. (opens in new tab)
- EPSS scores from FIRST (Exploit Prediction Scoring System). (opens in new tab)