Skip to main content
VulnerabilityPublished Updated

CVE-2026-33938: handlebars.js · Code Injection

Affects handlebars.jsSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 8.1 High : upgrade to 4.7.9 soon.

Data as of 30 Oct 2026, 11:52 UTC

CVSS 3.1 base score
8.1High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.7% chance of exploitation in 30 days – higher than 53% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 4.7.9
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 27 Mar 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade handlebars.js to 4.7.9.

Affected software

ProductAffectedFixed in
handlebars-langhandlebars.jsAffected
  • >=4.0.0 <4.7.9
Fixed in
  • 4.7.9
npmhandlebarspkg:npm/handlebarsOther threatsAffected
  • >=4.0.0 <=4.7.8
Fixed in–

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

An official fix is available in handlebars.js version 4.7.9. Users should upgrade to this version to remediate the vulnerability. If upgrading immediately is not possible, use the runtime-only build of handlebars.js which does not include the vulnerable compile() method. Additionally, audit all registered helpers to ensure they do not overwrite context data such as @partial-block with arbitrary values, and avoid registering third-party helpers in environments where templates or context data can be influenced by untrusted input.

Description

Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, the `@partial-block` special variable is stored in the template data context and is reachable and mutable from within a template via helpers that accept arbitrary objects. When a helper overwrites `@partial-block` with a crafted Handlebars AST, a subsequent invocation of `{{> @partial-block}}` compiles and executes that AST, enabling arbitrary JavaScript execution on the server. Version 4.7.9 fixes the issue. Some workarounds are available. First, use the runtime-only build (`require('handlebars/runtime')`). The `compile()` method is absent, eliminating the vulnerable fallback path. Second, audit registered helpers for any that write arbitrary values to context objects. Helpers should treat context data as read-only. Third, avoid registering helpers from third-party packages (such as `handlebars-helpers`) in contexts where templates or context data can be influenced by untrusted input.

References

Community reviews

Loading reviews…