Skip to main content
VulnerabilityPublished Updated

CVE-2026-33941: handlebars.js · Cross-site Scripting

Affects handlebars.jsSource CVE Database V5

0
Compare

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

Data as of 30 Oct 2026, 11:52 UTC

CVSS 3.1 base score
8.3High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.2% chance of exploitation in 30 days – higher than 22% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 4.7.9
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/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

A fixed version 4.7.9 of handlebars.js is available and should be applied to remediate this vulnerability. Until upgrading, users should validate all CLI inputs to reject characters with JavaScript string-escaping significance (e.g., quotes, semicolons). Use fixed, trusted namespace strings via configuration files rather than command-line arguments in automated pipelines. Run the precompiler in sandboxed environments with restricted permissions to limit exploitation impact. Additionally, audit template filenames in any repositories or packages used in automated build pipelines to detect potentially malicious inputs.

Description

Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, the Handlebars CLI precompiler (`bin/handlebars` / `lib/precompiler.js`) concatenates user-controlled strings — template file names and several CLI options — directly into the JavaScript it emits, without any escaping or sanitization. An attacker who can influence template filenames or CLI arguments can inject arbitrary JavaScript that executes when the generated bundle is loaded in Node.js or a browser. Version 4.7.9 fixes the issue. Some workarounds are available. First, validate all CLI inputs before invoking the precompiler. Reject filenames and option values that contain characters with JavaScript string-escaping significance (`"`, `'`, `;`, etc.). Second, use a fixed, trusted namespace string passed via a configuration file rather than command-line arguments in automated pipelines. Third, run the precompiler in a sandboxed environment (container with no write access to sensitive paths) to limit the impact of successful exploitation. Fourth, audit template filenames in any repository or package that is consumed by an automated build pipeline.

References

Community reviews

Loading reviews…