CVE-2026-33941: handlebars.js · Cross-site Scripting
Affects handlebars.jsSource CVE Database V5
Not known to be exploited · CVSS 8.3 High : upgrade to 4.7.9 soon.
Data as of 30 Oct 2026, 11:52 UTC
- 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:HExploitation evidence
Disclosed: evidence found.
CVE published 27 Mar 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by 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
| Product | Affected | Fixed in |
|---|---|---|
| handlebars-langhandlebars.js | Affected
| Fixed in
|
npmhandlebarspkg:npm/handlebarsOther threats | Affected
| 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
- github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf (opens in a new tab)
- github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe67b07da2 (opens in a new tab)
- github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.9 (opens in a new tab)
- access.redhat.com/security/cve/CVE-2026-33941 (opens in a new tab)
- bugzilla.redhat.com/show_bug.cgi?id=2452524 (opens in a new tab)
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33941.json (opens in a new tab)
- access.redhat.com/errata/RHSA-2026:34342 (opens in a new tab)
- access.redhat.com/errata/RHSA-2026:10175 (opens in a new tab)