← Search CVEs

CVE-2026-106446

CRITICAL 9.8

Published 2026-10-06 · Last modified 2026-10-07

Handlebars 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.

ELEVATED IMPACT

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

○ In CISA KEV ○ Catalogued PoC

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:

Affected

Vendors Handlebars Lang

Products Handlebars.Js

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
    Additional 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"
      }
    }
    GitHub Advisory Database · GHSA-8r5x-fm3f-whwj · Updated 2026-10-08T18:00:08.902906060Z

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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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
    Red Hat · CVE-2026-106446 · Updated 2026-10-19T23:04:46+00:00
  • 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:00
  • cargo 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:00
  • dotnet-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:00
  • libwayland-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:00
  • rust-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:00
  • thunderbird 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:00
  • cargo (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:00
  • dotnet-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:00
  • rust-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:00
  • rust (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:00
  • dotnet-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:00
  • dotnet-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:00
  • rust-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:00
  • rust-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:00
  • grafana12.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:00
  • rhtpa/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)

Advisories

Technical & other

Sources: NVD · CVE.org · EPSS