CVE-2026-33916: handlebars-lang handlebars.js Cross-site Scripting
Vulnerability summary
CVE-2026-33916 is a medium (CVSS 4.7) Cross-site Scripting vulnerability in handlebars-lang handlebars.js. EPSS estimates a 0.38% chance of exploitation in the next 30 days, higher than 30.6% of scored vulnerabilities. 1 public exploit is recorded.
Advisory lineage
Upstream 0 · Downstream 0 · Related 1Timeline
- 27-03-2026PublishedVulnerability first disclosed.
- 30-03-2026Last modifiedVulnerability information updated.
Description
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.
CVSS metrics
7 scores · 7 sources · 1 version- OSV · UbuntuEcosystem advisory · calculated4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- OSV · DebianEcosystem advisory · calculated4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- OSV · WolfiEcosystem advisory · calculated4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- OSV · NpmEcosystem advisory · calculated4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- OSV · ChainguardEcosystem advisory · calculated4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- NVDNIST4.7MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
EPSS trend
Probability
0.38%
Chance of exploitation in the next 30 days
Percentile
31%
Versus all other CVEs
30-day change
+0.11 pp
From 0.28% on 18-09-2026
Known exploited
Compare KEV catalogsNot in any of the 3 tracked catalogs.
Public exploits
1 foundHandlebars.Js
Maturity: poc
Weaknesses
CWE · root cause- CWE-79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- CWE-1321Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.
Affected systems
Chainguard63 products
- gitlab-rails-ce-18.1< 18.1.6-r14
- gitlab-rails-ce-18.10All versions (No fix recorded)
- gitlab-rails-ce-18.11< 18.11.6-r2
- gitlab-rails-ce-18.5All versions (No fix recorded)
- gitlab-rails-ce-18.6All versions (No fix recorded)
Wolfi12 products
- jupyter-base-notebook< 7.6.3-r2
- lerna< 9.0.7-r2
- nextcloud-server-32< 32.0.12-r1
- opensearch-dashboards-3< 3.5.0-r12
- prism< 5.14.3-r13
Debian1 product
- node-handlebarsAll versions (No fix recorded) | < 3:4.7.9-1
Handlebars-lang1 product
- handlebars.js≥ 4.0.0, < 4.7.9
Handlebarsjs1 product
- handlebars≥ 4.0.0, < 4.7.9
Npm1 product
- handlebars≥ 4.0.0, < 4.7.9
Ubuntu1 product
- node-handlebarsAll versions (No fix recorded)
7 vendors · 80 products
References
11 links- github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9X Refsource CONFIRMREPORTAdvisoryWEBExploitVendor Advisory
- github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe67b07da2X Refsource MISCREPORTFIXWEBPatch