CVE-2026-106446
CRITICAL 9.8Handlebars provides the power necessary to let users build semantic templates. From 4.0.0 until 4.7.10, Handlebars.compile() and Handlebars.precompile() accept pre-parsed AST objects while validating only selected PathExpression, NumberLiteral, and BooleanLiteral values. This issue bypasses the AST validation introduced in version 4.7.9 for CVE-2026-33937. An attacker who can supply an object instead of a template string can place JavaScript expressions in unchecked values such as Program.blockParams.length, a non-PathExpression parameter depth, a non-string StringLiteral.value, or a non-string PathExpression.original. The compiler emits those values into generated JavaScript, causing code execution in the server process when compile output renders or wherever precompile output is loaded. Applications that pass only template strings are not affected. This issue is fixed in version 4.7.10.
Severe if exploited (CVSS 9.8), but no known exploitation and low modeled probability. Patch on a normal cadence.
Exploitation likelihood
0.8%chance of exploitation in 30 days · 56th percentile
Impact if exploited
9.8CVSS 3.1 · CRITICAL
- ConfidentialityHigh
- IntegrityHigh
- AvailabilityHigh
What an attacker needs
- ✓Access: Reachable over the network — no local access needed
- ✓Privileges: No account or privileges required
- ✓User interaction: No user interaction needed
- ✓Complexity: No special conditions — reliably repeatable
✓ lowers the bar for an attacker · ⚠ raises it
Proof of concept
No public PoC is currently catalogued.
Search for new PoCs
Search GitHub now — results may be empty or unverified.
Tracked sources are checked daily for recent CVEs, including PoCs published after the original disclosure. A later release appears after a tracked source lists it and a refresh succeeds.
Data snapshot:
Weakness (CWE)
- CWE-94: : Improper Control of Generation of Code ('Code Injection')
- CWE-843: : Access of Resource Using Incompatible Type ('Type Confusion')
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References and research data (JSON)
Packages and version ranges
Each advisory describes its own package and affected ranges. A boundary applies to that range; it is not a universal upgrade recommendation.
handlebars npm
pkg:npm/handlebars
SEMVER range- Introduced version (included): 4.0.0
- Fixed boundary (excluded): 4.7.10
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060ZAdditional upstream package constraints
{ "database": { "last_known_affected_version_range": "<= 4.7.9", "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-8r5x-fm3f-whwj/GHSA-8r5x-fm3f-whwj.json" } }
Vendor product assessments
Showing 32 of 195 vendor product statements; 163 omitted. Read the full vendor advisory.
cryostat/cryostat-openshift-console-plugin-rhel9 as a component of Cryostat 4 · known affected
Vendor assessment for this product only.
pkg:oci/cryostat-openshift-console-plugin-rhel9?repository_url=registry.redhat.io/cryostat/cryostat-openshift-console-plugin-rhel9
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
workload-availability/node-healthcheck-rhel9-operator as a component of Node HealthCheck Operator · known affected
Vendor assessment for this product only.
pkg:oci/node-healthcheck-rhel9-operator?repository_url=registry.redhat.io/workload-availability/node-healthcheck-rhel9-operator
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
rhaf-hawtio-maven-repository.zip as a component of Red Hat build of Apache Camel - HawtIO 4 · known affected
Vendor assessment for this product only.
pkg:generic/rhaf-hawtio-maven-repository.zip
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana.src as a component of Red Hat Enterprise Linux 10 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana?arch=src
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
cockpit-doc as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/cockpit-doc
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
cockpit-storaged as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/cockpit-storaged
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana-graphite as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana-graphite
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana-mssql as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana-mssql
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana-prometheus as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana-prometheus
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
mozjs60 as a component of Red Hat Enterprise Linux 8 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/mozjs60
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
grafana-selinux as a component of Red Hat Enterprise Linux 9 · known affected
Vendor assessment for this product only.
pkg:rpm/redhat/grafana-selinux
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
rhoai/odh-dashboard-rhel9 as a component of Red Hat OpenShift AI (RHOAI) · known affected
Vendor assessment for this product only.
pkg:oci/odh-dashboard-rhel9?repository_url=registry.redhat.io/rhoai/odh-dashboard-rhel9
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
rhoai/odh-mod-arch-autorag-rhel9 as a component of Red Hat OpenShift AI (RHOAI) · known affected
Vendor assessment for this product only.
pkg:oci/odh-mod-arch-autorag-rhel9?repository_url=registry.redhat.io/rhoai/odh-mod-arch-autorag-rhel9
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
rhoai/odh-mod-arch-mlflow-rhel9 as a component of Red Hat OpenShift AI (RHOAI) · known affected
Vendor assessment for this product only.
pkg:oci/odh-mod-arch-mlflow-rhel9?repository_url=registry.redhat.io/rhoai/odh-mod-arch-mlflow-rhel9
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
ansible-automation-platform/automation-portal as a component of Self-service automation portal 2 · known affected
Vendor assessment for this product only.
pkg:oci/automation-portal?repository_url=registry.redhat.io/ansible-automation-platform/automation-portal
- workaround: Upgrade to Handlebars 4.7.10 or later. Ensure only strings are passed to Handlebars.compile() and Handlebars.precompile(); reject non-string inputs. If templates are precompiled at build time, prefer the runtime-only build (handlebars/runtime) so compile() is unavailable on the server.
- none available: Affected
amq-broker-bin.zip as a component of Red Hat AMQ Broker 7 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:generic/amq-broker-bin.zip
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00cargo as a component of Red Hat Enterprise Linux 10 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/cargo
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00dotnet-targeting-pack-8.0 as a component of Red Hat Enterprise Linux 10 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not in execute path
pkg:rpm/redhat/dotnet-targeting-pack-8.0
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00libwayland-egl as a component of Red Hat Enterprise Linux 10 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/libwayland-egl
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rust-std-static as a component of Red Hat Enterprise Linux 10 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/rust-std-static
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00thunderbird as a component of Red Hat Enterprise Linux 10 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/thunderbird
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00cargo (rust-toolset:rhel8) as a component of Red Hat Enterprise Linux 8 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/cargo?rpmmod=rust-toolset:rhel8
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00dotnet-sdk-8.0-source-built-artifacts as a component of Red Hat Enterprise Linux 8 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not in execute path
pkg:rpm/redhat/dotnet-sdk-8.0-source-built-artifacts
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rust-doc (rust-toolset:rhel8) as a component of Red Hat Enterprise Linux 8 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/rust-doc?rpmmod=rust-toolset:rhel8
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rust (rust-toolset:rhel8) as a component of Red Hat Enterprise Linux 8 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/rust?rpmmod=rust-toolset:rhel8
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00dotnet-apphost-pack-8.0 as a component of Red Hat Enterprise Linux 9 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not in execute path
pkg:rpm/redhat/dotnet-apphost-pack-8.0
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00dotnet-templates-8.0 as a component of Red Hat Enterprise Linux 9 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not in execute path
pkg:rpm/redhat/dotnet-templates-8.0
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rust-analysis as a component of Red Hat Enterprise Linux 9 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/rust-analysis
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rust-std-static-wasm32-wasi as a component of Red Hat Enterprise Linux 9 · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:rpm/redhat/rust-std-static-wasm32-wasi
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00grafana12.4.src as a component of Red Hat Hardened Images · known not affected
Vendor assessment for this product only.
Reason: component not present
pkg:rpm/redhat/grafana12.4?arch=src
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00rhtpa/rhtpa-trustification-service-rhel9 as a component of Red Hat Trusted Profile Analyzer · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
pkg:oci/rhtpa-trustification-service-rhel9?repository_url=registry.redhat.io/rhtpa/rhtpa-trustification-service-rhel9
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
All CVSS metrics
- CRITICAL 9.8 v3.1 · CNA Primary
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CRITICAL 9.8 v3.1 · NVD Secondary
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References
Exploit-tagged references (not proof of a PoC)
- https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-8r5x-fm3f-whwj CVE record · GitHub_M · Updated 2026-10-06T19:41:55.785Z
CVE record · CISA-ADP · Updated 2026-10-07T18:30:12.451Z
NVD · CVE-2026-106446 · Updated 2026-10-07T19:17:32.293
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
Advisories
- https://osv.dev/vulnerability/GHSA-8r5x-fm3f-whwj GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z - https://nvd.nist.gov/vuln/detail/CVE-2026-106446 GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00 - https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-106446.json Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-93969 EUVD · EUVD-2026-93969
Technical & other
- https://github.com/handlebars-lang/handlebars.js/pull/2185 CVE record · GitHub_M · Updated 2026-10-06T19:41:55.785Z
NVD · CVE-2026-106446 · Updated 2026-10-07T19:17:32.293
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00 - https://github.com/handlebars-lang/handlebars.js/commit/703fdcc5fd6cc8d1cc0c33cc19de40c467c4b8d2 CVE record · GitHub_M · Updated 2026-10-06T19:41:55.785Z
NVD · CVE-2026-106446 · Updated 2026-10-07T19:17:32.293
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00 - https://github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.10 CVE record · GitHub_M · Updated 2026-10-06T19:41:55.785Z
NVD · CVE-2026-106446 · Updated 2026-10-07T19:17:32.293
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z
Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00 - https://github.com/handlebars-lang/handlebars.js GitHub Advisory Database · GHSA-8r5x-fm3f-whwj
GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z - https://access.redhat.com/security/cve/CVE-2026-106446 Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
- https://bugzilla.redhat.com/show_bug.cgi?id=2547120 Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
- https://www.cve.org/CVERecord?id=CVE-2026-106446 Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00