GHSA-2qvq-rjwj-gvw9 · Severity: medium · Ecosystem: npm — Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection
Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, `resolvePartial()` in the Handlebars runtime resolves partial names via a plain property lookup on `options.partials` without guarding against prototype-chain traversal. When `Object.prototype` has been polluted with a string value whose key matches a partial reference in a template, the polluted string is used as the partial body and rendered without HTML escaping, resulting in reflected or stored XSS. Version 4.7.9 fixes the issue. Some workarounds are available. Apply `Object.freeze(Object.prototype)` early in application startup to prevent prototype pollution. Note: this may break other libraries, and/or use the Handlebars runtime-only build (`handlebars/runtime`), which does not compile templates and reduces the attack surface.
Conclusion & alert: CVE-2026-33916 is rated Exploit Available (50/100): CVSS Medium severity, with low exploitation likelihood (EPSS 0.06%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-05-08 | 0.03% | 0.06% | +0.03% |
| 2 | 2026-03-28 | — | 0.03% | — |
Full EPSS history (2 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 4.7 | 3.1 | MEDIUM |
|
1.6 | 2.7 | [email protected] |
| 4.7 | 3.1 | MEDIUM |
|
1.6 | 2.7 | [email protected] |
GHSA-2qvq-rjwj-gvw9 · Severity: medium · Ecosystem: npm — Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection
| vendor | priority | summary | link |
|---|---|---|---|
debian
|
not yet assigned | CVE-2026-33916 not yet assigned priority: Debian including 1 source packages (node-handlebars), 5 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): open 3, resolved 2. | https://security-tracker.debian.org/tracker/CVE-2026-33916 |
redhat
|
medium | — | https://access.redhat.com/security/cve/CVE-2026-33916 |
ubuntu
|
medium | CVE-2026-33916 medium priority: Ubuntu including 1 source packages (node-handlebars), 6 status rows across 6 suites (bionic, focal, jammy, noble, questing, upstream): needs-triage 5, released 1. | https://ubuntu.com/security/CVE-2026-33916 |
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| handlebarsjs | handlebars | >= 4.0.0, < 4.7.9 | cpe:2.3:a:handlebarsjs:handlebars:*:*:*:*:*:node.js:*:* |