CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-65601

CVE-2026-65601: Namespace Confusion Vulnerability in Traefik Gateway API HTTPRoute BackendRef ExtensionRef Resolution

Alon Barad
Alon Barad
Software Engineer

Aug 5, 2026·6 min read·3 visits

Executive Summary (TL;DR)

Traefik versions 3.7.0 through 3.7.6 are vulnerable to namespace confusion where backend-level custom filters (ExtensionRefs) are resolved using the backend service's namespace instead of the source HTTPRoute's namespace, permitting cross-namespace middleware hijacking.

CVE-2026-65601 is a critical security vulnerability within Traefik's implementation of the Kubernetes Gateway API. Due to variable reuse and incorrect namespace resolution logic in the routing engine, Traefik resolved custom extension filters (such as Traefik CRD Middlewares) inside a target backend service's namespace rather than the originating HTTPRoute's namespace. This flaw enables a low-privileged tenant to bypass namespace isolation boundaries and invoke highly privileged middleware components in foreign namespaces to which they only have service-level routing access.

Vulnerability Overview

The Kubernetes Gateway API provides a standardized mechanism for routing traffic into clusters, relying on fine-grained authorization controls to preserve isolation in multi-tenant environments. An integral control is the ReferenceGrant resource, which allows a backend owner in one namespace to authorize routing components (such as an HTTPRoute) from a foreign namespace to bind to their backend Services.

However, in Traefik's Gateway API provider implementation, a critical vulnerability exists when processing custom middleware filters defined under a backend reference (HTTPRoute.spec.rules[].backendRefs[].filters[]). Traefik supports defining custom filters using the ExtensionRef type, which translates to Traefik Custom Resource Definition (CRD) Middleware objects.

When evaluating these backend-level filters, the controller incorrectly binds the resolution context of the filter to the target Service's namespace instead of the source HTTPRoute namespace. This allows unauthorized cross-namespace resource access, exposing highly privileged middlewares (such as those managing authentication, headers injection, or rate-limiting) to unintended tenants.

Root Cause Analysis

The root cause of CVE-2026-65601 lies within the file pkg/provider/kubernetes/gateway/httproute.go inside the loadService function. During HTTPRoute compilation, the Traefik Gateway API controller iterates through each rule's backend references to resolve backend Services and associate corresponding filters.

When resolving a cross-namespace reference, the controller evaluates the target namespace defined within the backendRef object. The function temporarily overwrites a local string variable named namespace with the target Service's namespace (backendRef.Namespace). This value is subsequently utilized to perform the Kubernetes API lookup for the corresponding Service object.

Crucially, after resolving the Service, the controller invokes p.loadMiddlewares() to parse and load the associated filters. Because the local namespace variable was mutated to reference the target Service's namespace, the call to loadMiddlewares uses this overwritten value instead of the original HTTPRoute namespace. Consequently, Traefik queries the target namespace for the requested CRD Middleware objects, bypassing the explicit tenant access barriers defined by Gateway API namespaces.

Code Analysis

To understand the vulnerability mechanics, examine the difference between the vulnerable and patched code within pkg/provider/kubernetes/gateway/httproute.go under the commit 655d6324ab4a1475892a958d4bae389720a67ea9.

Below is the vulnerable implementation:

// VULNERABLE CODE PATH
// Inside loadService(...)
 
if backendRef.Namespace != nil {
    // The local namespace variable is overwritten here with the backend namespace
    namespace = string(*backendRef.Namespace)
}
 
// ... service resolution logic utilizing the overwritten namespace ...
 
// Bug: The mutated namespace variable is passed to loadMiddlewares
middlewares, err := p.loadMiddlewares(conf, namespace, serviceName, backendRef.Filters, pathMatch)
if err != nil {
    return serviceName, &metav1.Condition{
        Type:               string(gatev1.RouteConditionResolvedRefs),
        // ...
    }
}

In the patched code, the resolution of middlewares is modified to reference the originating route's namespace explicitly:

// PATCHED CODE PATH
// Inside loadService(...)
 
if backendRef.Namespace != nil {
    namespace = string(*backendRef.Namespace)
}
 
// ... service resolution logic utilizing the overwritten namespace ...
 
// Fix: route.Namespace is used instead of the mutated namespace variable
middlewares, err := p.loadMiddlewares(conf, route.Namespace, serviceName, backendRef.Filters, pathMatch)
if err != nil {
    return serviceName, &metav1.Condition{
        Type:               string(gatev1.RouteConditionResolvedRefs),
        // ...
    }
}

This explicit call ensures that even if Traefik queries the destination namespace to bind the destination Service, all filters are retrieved strictly from the security context of the tenant owning the HTTPRoute.

Exploitation Methodology

Exploitation of this vulnerability requires that a target namespace contains a privileged Middleware resource and has granted service-level access to the attacker's namespace via a ReferenceGrant. It does not require special administrative privileges.

First, the attacker identifies a legitimate ReferenceGrant that allows their namespace (e.g., default) to send traffic to a target namespace (e.g., production). They target a service inside production called secure-api.

Second, the attacker inspects or guesses the names of existing Middleware CRDs in the production namespace. For example, a target middleware named admin-auth-bypass could inject a trusted custom header like X-Admin-Token: supersecret to the downstream container.

Third, the attacker authors and deploys a malicious HTTPRoute in the default namespace:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata: 
  name: attack-route
  namespace: default
spec:
  parentRefs:
    - name: public-gateway
  rules:
    - backendRefs:
        - name: secure-api
          namespace: production
          port: 80
          filters:
            - type: ExtensionRef
              extensionRef:
                group: traefik.io
                kind: Middleware
                name: admin-auth-bypass

When Traefik compiles this route, it evaluates secure-api in the production namespace, changes the context namespace to production, and subsequently fetches admin-auth-bypass from production. The attacker successfully mounts a privileged middleware onto their route, gaining unauthorized administrative capabilities.

Impact Assessment

The impact of CVE-2026-65601 is evaluated based on the compromise of downstream applications and boundary controls. Since Traefik acts as the primary ingress controller and reverse proxy, any failure in routing boundaries translates to direct downstream exploitation.

By hijacking middlewares from foreign namespaces, attackers can bypass critical access controls. This includes executing header manipulation middlewares to spoof authentication payloads, utilizing rate-limiting configurations of other tenants to degrade performance, or redirecting request flows using forward-auth configurations to leak sensitive transaction tokens.

While the direct impact on the Traefik control plane itself is limited (no direct host access or container breakout), the subsequent systems suffer high confidentiality and integrity risks. This matches the CVSS 4.0 assessment where subsequent systems confidentiality (SC) and integrity (SI) are rated as High.

Remediation and Prevention

The primary remediation for CVE-2026-65601 is upgrading the Traefik instance to version 3.7.7 or later. The patch permanently separates the target service's namespace from the lookup context of backend-level filters.

If immediate upgrades are impossible, security teams should implement the following containment measures:

  1. Restrict ReferenceGrants: Review and eliminate overly permissive ReferenceGrant configurations in the cluster. Ensure that namespaces containing sensitive configurations or middlewares do not allow service-level references from untrusted tenant namespaces.

  2. Policy Enforcement: Deploy an admission controller (such as OPA Gatekeeper or Kyverno) to block HTTPRoute definitions in tenant namespaces that utilize ExtensionRef filters inside cross-namespace backendRefs blocks. A Kyverno rule can inspect user submissions and reject any HTTPRoute where backendRefs[].namespace is defined and backendRefs[].filters[].extensionRef is present.

Official Patches

Traefik LabsOfficial GitHub Security Advisory for Traefik Namespace Confusion

Fix Analysis (2)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N
EPSS Probability
0.24%
Top 85% most exploited

Affected Systems

Traefik Labs Traefik (Kubernetes Gateway API Provider)

Affected Versions Detail

Product
Affected Versions
Fixed Version
Traefik
Traefik Labs
>= 3.7.0, <= 3.7.63.7.7
AttributeDetail
CWE IDCWE-863 (Incorrect Authorization)
Attack VectorNetwork
CVSS v4.0 Score5.3 (Medium)
EPSS Score0.00238
Exploit StatusNone
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-863
Incorrect Authorization

The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly obtain or verify the identity, permissions, or context of the actor, leading to improper resource binding.

References & Sources

  • [1]Traefik Security Advisory GHSA-qq9q-x9w4-chhj
  • [2]Traefik Code Patch Commit 655d6324ab4a1475892a958d4bae389720a67ea9
  • [3]Traefik Code Patch Commit 26c96a3935cafb473f4a5bae1886560d9aa4e4f0
  • [4]VulnCheck Security Advisory
  • [5]Wiz Vulnerability DB Entry

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-71321
7.5

CVE-2026-71321: Unauthenticated Denial of Service and CPU Exhaustion in Nuxt Island Renderer

An unauthenticated remote denial of service vulnerability exists in the Nuxt framework island renderer endpoint. By transmitting large or deeply nested JSON payloads, an attacker can block the single-threaded Node.js event loop, resulting in application-wide CPU exhaustion before signature verification occurs.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 3 hours ago•CVE-2026-65602
5.3

CVE-2026-65602: IngressRouteTCP ServersTransport Namespace Bypass in Traefik

An authorization bypass vulnerability in Traefik allows low-privileged users within unauthorized Kubernetes namespaces to reference privileged file-provider TCP serversTransports via IngressRouteTCP resources, bypassing the crossProviderNamespaces constraint.

Alon Barad
Alon Barad
3 views•7 min read
•about 4 hours ago•CVE-2026-71314
7.5

CVE-2026-71314: Out-of-Memory Denial of Service via Unbounded v-for Expansion in Nuxt Server Islands

An unauthenticated remote denial of service (DoS) vulnerability exists in Nuxt's server component ('island') rendering mechanism. Due to a deterministic signature generation scheme and missing input constraints on server-side v-for directive expansion, an attacker can trigger unconstrained memory allocations on the hosting Node.js server, leading to immediate process crash.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 5 hours ago•CVE-2026-70610
5.4

CVE-2026-70610: Context Isolation Bypass via Prototype Pollution in Electron contextBridge

A security vulnerability in Electron's contextBridge allows untrusted renderer contexts to bypass context isolation. By passing an object with a crafted __proto__ property, an attacker can pollute the prototype chain of objects copied into the privileged preload context. This occurs because Electron's C++ property copying layer used standard V8 property assignment, which executes prototype setters. This bypasses Electron's context isolation security boundary, potentially enabling remote code execution (RCE) or privileges escalation. The vulnerability has been addressed in Electron versions 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.4.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 6 hours ago•CVE-2026-70611
6.9

CVE-2026-70611: Sandbox Escape and Command Execution via DevTools Shell Integration in Electron

A high-severity sandbox escape and arbitrary command execution vulnerability exists in the Electron desktop framework prior to versions 39.8.9, 40.9.2, 41.2.1, and 42.0.0-beta.3. The flaw lies in the handling of DevTools embedder messages during file manager reveal actions, allowing an attacker to execute arbitrary binaries with main process privileges.

Alon Barad
Alon Barad
5 views•6 min read
•about 7 hours ago•CVE-2026-70612
5.4

CVE-2026-70612: Iframe Sandbox Escape and Host Protocol Launch in Electron

Improper access control in Electron versions prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3 allowed sandboxed iframes to bypass sandbox restrictions and trigger external application protocols on the host operating system. The application's custom permission handler was also not provided with the frame's sandbox state, preventing effective validation of the request context.

Amit Schendel
Amit Schendel
5 views•6 min read