CVE-2026-33916 json
Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection
published 2026-03-26 7 mo ago modified 2026-10-26 13 d ago also GHSA-2qvq-rjwj-gvw9 , EUVD-2026-16847
- cvss
- 4.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm handlebars 4.7.9
- handlebarsjs handlebars 4.7.9
- node-handlebars Debian 14 3:4.7.9-1
debian advisories DEBIAN-CVE-2026-33916
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-33916 updated cvss 4.7
handlebars.js: Handlebars: Cross-Site Scripting (XSS) via prototype pollution in partial resolution
-
Red Hat Cryostat 4 handlebars Red Hat Logging Subsystem for Red Hat OpenShift openshift-logging/kibana6-rhel8, openshift-logging/elasticsearch6-rhel9, openshift-logging/logging-curator5-rhel9, openshift-logging/elasticsearch-proxy-rhel9, openshift-logging/elasticsearch-rhel9-operator, openshift-logging/elasticsearch-operator-bundle Red Hat Data Grid 8 handlebars Red Hat Enterprise Linux 7 firefoxaffected: workaround, no fix available “Fix deferred”
-
Red Hat Enterprise Linux 8 firefox, grafana, mozjs60, 389-ds-base, thunderbird, grafana-loki, +17 moreaffected: workaround, no fix available, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 9 firefox, firefox-x11, thunderbird Red Hat Enterprise Linux 10 firefox, thunderbird Red Hat OpenShift AI (RHOAI) rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 Red Hat OpenShift Dev Spaces devspaces/code-rhel9 Red Hat Process Automation 7 handlebarsaffected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 7 mo ago
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N |
| NVD | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | handlebars | >=4.0.0, <4.7.9 |
4.7.9 |
Affected products
- handlebars-lang handlebars.js
Classification
References
-
github.com
/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe67b07da2
web, patch
-
github.com
/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9
web, exploit, vendor-advisory
-
github.com
/handlebars-lang/handlebars.js/releases/tag/v4.7.9
web, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2021-23369
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-23383
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-33916
advisory
-
github.com
/handlebars-lang/handlebars.js
package
Sources
- CVE List CVE-2026-33916
- GitHub Advisory GHSA-2qvq-rjwj-gvw9
- NVD CVE-2026-33916
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.