CVE-2026-33916
Fixed in a distro release EPSS <1%CVSS 4.7
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.
Products: handlebars-lang handlebars.js
Fixed upstream
| Ecosystem | Package | Fixed in |
|---|---|---|
| npm | handlebars | 4.7.9 |
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| Chainguard | gitlab-rails-ce-18.1 | 18.1.6-r14 |
| Chainguard | gitlab-rails-ce-18.10 | no fix |
| Chainguard | gitlab-rails-ce-18.11 | 18.11.6-r2 |
| Chainguard | gitlab-rails-ce-18.5 | no fix |
| Chainguard | gitlab-rails-ce-18.6 | no fix |
| Chainguard | gitlab-rails-ce-18.7 | no fix |
| Chainguard | gitlab-rails-ce-18.8 | no fix |
| Chainguard | gitlab-rails-ce-18.9 | no fix |
| Chainguard | gitlab-rails-ce-19.0 | 19.0.3-r1 |
| Chainguard | gitlab-rails-ce-19.1 | 19.1.1-r6 |
| Chainguard | gitlab-rails-ce-assets-fips-19.4 | 19.4.0-r2 |
| Chainguard | gitlab-rails-ce-fips-18.1 | 18.1.6-r15 |
| Chainguard | gitlab-rails-ce-fips-18.10 | 18.10.8-r8 |
| Chainguard | gitlab-rails-ce-fips-18.11 | 18.11.6-r1 |
| Chainguard | gitlab-rails-ce-fips-18.5 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.6 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.7 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.8 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.9 | 18.9.8-r8 |
| Chainguard | gitlab-rails-ce-fips-19.0 | 19.0.3-r1 |
| Chainguard | gitlab-rails-ce-fips-19.1 | 19.1.1-r1 |
| Chainguard | jupyter-base-notebook | 7.6.3-r2 |
| Chainguard | kibana-7 | no fix |
| Chainguard | kibana-8.17 | 8.17.10-r15 |
| Chainguard | kibana-8.17-bitnami | 8.17.10-r15 |
| Chainguard | kibana-8.17-iamguarded | 8.17.10-r15 |
| Chainguard | kibana-8.18 | 8.18.8-r11 |
| Chainguard | kibana-8.18-bitnami | 8.18.8-r11 |
| Chainguard | kibana-8.18-iamguarded | 8.18.8-r11 |
| Chainguard | kibana-8.19 | 8.19.13-r5 |
| Chainguard | kibana-8.19-bitnami | 8.19.13-r5 |
| Chainguard | kibana-8.19-iamguarded | 8.19.13-r5 |
| Chainguard | kibana-9.0 | 9.0.8-r16 |
| Chainguard | kibana-9.0-bitnami | 9.0.8-r16 |
| Chainguard | kibana-9.0-iamguarded | 9.0.8-r16 |
| Chainguard | kibana-9.1 | 9.1.10-r9 |
| Chainguard | kibana-9.1-iamguarded | 9.1.10-r9 |
| Chainguard | kibana-9.2 | 9.2.7-r2 |
| Chainguard | kibana-9.2-iamguarded | 9.2.7-r2 |
| Chainguard | kibana-9.3 | 9.3.2-r2 |
| Chainguard | kibana-9.3-iamguarded | 9.3.2-r2 |
| Chainguard | lerna | 9.0.7-r2 |
| Chainguard | nextcloud-server-31 | no fix |
| Chainguard | nextcloud-server-32 | 32.0.12-r1 |
| Chainguard | opensearch-dashboards-2 | 2.19.5-r5 |
| Chainguard | opensearch-dashboards-2-fips | 2.19.5-r4 |
| Chainguard | opensearch-dashboards-3 | 3.5.0-r12 |
| Chainguard | opensearch-dashboards-3-fips | 3.5.0-r9 |
| Chainguard | pelias-api | 7.6.0-r5 |
| Chainguard | prism | 5.14.3-r13 |
| Chainguard | py3.10-jupyterlab | 4.6.1-r1 |
| Chainguard | py3.11-jupyterlab | 4.6.1-r1 |
| Chainguard | py3.12-jupyterlab | 4.6.1-r1 |
| Chainguard | py3.13-jupyterlab | 4.6.1-r1 |
| Chainguard | rancher-api-ui | 1.2.3-r8 |
| Chainguard | tensorflow-cpu-jupyter | 2.21.0-r8 |
| Chainguard | tensorflow-gpu-jupyter | 2.21.0-r12 |
| Chainguard | tileserver-gl | 5.5.0-r11 |
| Chainguard | tileserver-gl-fips | 5.5.0-r11 |
| Chainguard | ts-patch | 4.0.1-r0 |
| Chainguard | wazuh-dashboard | 4.14.4-r1 |
| Chainguard | wazuh-dashboard-security-plugin-fips | 4.14.5-r8 |
| Debian 12 | node-handlebars | no fix |
| Debian 13 | node-handlebars | no fix |
| Debian 14 | node-handlebars | 3:4.7.9-1 |
| Ubuntu 18.04 LTS | node-handlebars | no fix |
| Ubuntu 20.04 LTS | node-handlebars | no fix |
| Ubuntu 22.04 LTS | node-handlebars | no fix |
| Ubuntu 24.04 LTS | node-handlebars | no fix |
| Ubuntu 25.10 | node-handlebars | no fix |
| Ubuntu 26.04 LTS | node-handlebars | no fix |
| Ubuntu 26.10 | node-handlebars | no fix |
| Wolfi | jupyter-base-notebook | 7.6.3-r2 |
| Wolfi | lerna | 9.0.7-r2 |
| Wolfi | nextcloud-server-32 | 32.0.12-r1 |
| Wolfi | opensearch-dashboards-3 | 3.5.0-r12 |
| Wolfi | prism | 5.14.3-r13 |
| Wolfi | py3.10-jupyterlab | 4.6.1-r1 |
| Wolfi | py3.11-jupyterlab | 4.6.1-r1 |
| Wolfi | py3.12-jupyterlab | 4.6.1-r1 |
| Wolfi | py3.13-jupyterlab | 4.6.1-r1 |
| Wolfi | rancher-api-ui | 1.2.3-r8 |
| Wolfi | tileserver-gl | 5.5.0-r11 |
| Wolfi | ts-patch | 4.0.1-r0 |