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

CVE-2026-71327

CVE-2026-71327 Vulnerability in Traefik
📅 PUBLISHED: 2026-08-06 00:00 UTC 🔄 UPDATED: 2026-09-26 06:08 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.35%
👁️
0.35% probability
8.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: France License: Open Source
Affected: Traefik — upgrade to patched release
CVSS VECTOR BREAKDOWN 8.1
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: N Availability None
8.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-71327 is a critical access control flaw in Traefik's Kubernetes Gateway API provider. Versions 3.0.0 through 3.6.24 and 3.7.0 through 3.7.9 are vulnerable to a route identity collision that permits cross-namespace backend manipulation. An attacker with the ability to create or modify HTTPRoute, GRPCRoute, TCPRoute, or TLSRoute resources in one Kubernetes namespace can overwrite the routing configuration of another namespace, hijacking traffic destined for legitimate services. The vulnerability affects all organizations running Traefik as an ingress controller with the Gateway API provider enabled in multi-tenant Kubernetes clusters.

⚡ 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

Technical Analysis

The vulnerability resides in Traefik's Kubernetes Gateway API provider, specifically within the router and service identity construction logic found in pkg/provider/kubernetes/gateway/httproute.go, grpcroute.go, tcproute.go, and tlsroute.go.

Mechanism: Traefik constructs unique identifiers for each HTTPRoute, GRPCRoute, TCPRoute, and TLSRoute by concatenating several components with a hyphen delimiter: namespace, route name, Gateway identity, entry point, and rule index. The resulting string serves as the internal mapping key that associates an incoming request (matched by host, path, or protocol attributes) with a specific backend service.

The flaw is the classic "hyphen-concatenation collision" pattern. Because the identity is a naive string concatenation without explicit separator escaping or collision detection, an attacker can craft route names and namespaces that produce an identical concatenated string to a legitimate route in a different namespace.

Example Collision: Consider a legitimate route in namespace ns-prod:

  • Namespace: ns-prod
  • Route name: web-app
  • Gateway: gw
  • Entry point: web
  • Rule index: 0 Identity: ns-prod-web-app-gw-web-0

An attacker in namespace ns-prod-web creates a route named app-gw-web-0:

  • Namespace: ns-prod-web
  • Route name: app-gw-web-0
  • Gateway: gw
  • Entry point: web
  • Rule index: 0 Identity: ns-prod-web-app-gw-web-0

Both routes produce the identical identity string ns-prod-web-app-gw-web-0. When Traefik rebuilds its routing table (which occurs on any Gateway API resource change across the cluster), the last-processed route overwrites the previous one. Either the attacker's route takes precedence (traffic hijack) or the legitimate route overwrites the attacker's (denial of service against the attacker's resource). The overwrite is non-deterministic because the processing order is not guaranteed.

Attack Surface: The attack surface is restricted to clusters where:

  1. The Kubernetes Gateway API provider (providers.kubernetesGateway) is enabled in Traefik.
  2. RBAC policies permit route resource creation/modification in any namespace (even a dedicated low-privilege namespace).
  3. A shared Gateway resource spans multiple namespaces.

The vulnerability is not remotely exploitable from outside the cluster without first having Kubernetes API access. However, in multi-tenant environments where each tenant has its own namespace and can create Gateway API resources, any tenant can attack all other tenants sharing the same Traefik instance.

Exploitation Scenarios

The following is a concrete attack chain for a multi-tenant Kubernetes cluster:

1. Reconnaissance/Pre-requisite:

  • Attacker already has Kubernetes API credentials valid for their own namespace (e.g., a low-privileged service account).
  • Attacker enumerates namespaces (if RBAC allows get on namespaces) or guesses common production namespaces (prod, default, payment, etc.).
  • Attacker identifies the Gateway resource name and the set of entry points. This is often visible in the default namespace or through a shared GatewayClass.

2. Trigger — Crafting the Collision:

  • Attacker lists all HTTPRoutes in the victim's namespace by querying kubectl get httproute -n <victim-ns> (if RBAC permits list across namespaces) or by guessing based on common naming patterns.
  • For a victim route in namespace victim-ns named api-gateway with Gateway gateway-1, entry point https, rule index 0, the victim's identity is victim-ns-api-gateway-gateway-1-https-0.
  • The attacker creates a new HTTPRoute in their own namespace, say attacker-ns-victim, named ns-api-gateway-gateway-1-https-0. Wait — the concatenation is namespace-routeName-gateway-entryPoint-ruleIndex. For the collision to work, attacker-ns-victim + ns-api-gateway-gateway-1-https-0 must equal victim-ns + api-gateway-gateway-1-https-0. This means attacker namespace must be victim-ns minus suffix if the route name is longer, OR attacker namespace must be victim-ns and route name is api-gateway-gateway-1-https-0 (impossible if that route name is taken in the same namespace). The practical collision requires per-character-level control. For example, if victim namespace is prod and route is web, identity = prod-web-gw-https-0. Attacker creates namespace prod-web-gw-https- and route name 0. Identity = prod-web-gw-https-0 too. This works if the attacker has cluster-admin rights to create namespaces on their own namespace. In typical multi-tenant Kubernetes, namespace creation may be restricted, but the attacker can still exploit a shorter victim namespace.
  • Simpler attack: Attacker creates a route name that is a prefix-extension. If victim namespace is prod and route web, attacker namespace is prod-web and route name gw-https-0. Identity collision achieved.

3. Payload/Execution:

  • The attacker's HTTPRoute points to a malicious backend service (an attacker-controlled pod) that logs all requests, steals bearer tokens, or proxies to the real backend while recording credentials.
  • Attacker applies the HTTPRoute manifest with kubectl apply -f malicious-route.yaml -n <attacker-ns>.
  • The Kubernetes Gateway API controller reconciles the change and pushes the update to Traefik.
  • Traefik recomputes its routing table. The attacker's route and the victim's route have identical keys. The state of the routing table is now uncertain — either the attacker's backend is now mapped to the victim's hostname/path rules, or vice versa. In both cases, the victim's service is disrupted.

4. Post-Exploitation:

  • Traffic Hijack: All inbound traffic to the victim's route (e.g., https://api.victim.com/v1/*) is routed to the attacker's pod. The attacker harvests API keys, JWT tokens, session cookies, and sensitive payloads.
  • Denial of Service: If the legitimate route "wins" the collision, the attacker's own route is silently dropped — the attacker can induce DoS on any tenant at will by leaving malicious routes in place or churning through many collision attempts.
  • Persistence: The attacker can maintain the malicious route indefinitely, continuously intercepting traffic. No additional privileges are needed beyond the initial namespace-level write access.

Impact Assessment

Business Impact: This vulnerability enables a full multi-tenant isolation bypass. An attacker with write access to Gateway API resources in any namespace can achieve:

  • Confidentiality Breach (High): Interception of all HTTP, gRPC, TCP, and TLS traffic routed to the victim's services, including credentials and PII.
  • Integrity Violation (High): Re-routing traffic to malicious backends that modify responses (e.g., injecting malicious JavaScript into web pages served by the victim).
  • Availability Impact (High): Deleting or overwriting the victim's route configuration, rendering their services unreachable.

Affected Systems: Any Traefik instance operating as a Kubernetes ingress controller with the Gateway API provider enabled. Version range: 3.0.0 - 3.6.24, 3.7.0 - 3.7.9.

Blast Radius: In a multi-tenant cluster, the blast radius is cluster-wide across all namespaces sharing the same Traefik instance. In single-tenant clusters where a single team manages their own route resources, the risk is minimal unless RBAC is misconfigured.

CVSS Reference: The CVSS score is N/A per the CNA. The priority should be treated as Critical (9.0-10.0) based on the combination of network adjacency (Kubernetes API), low complexity, no privileges required beyond namespace-level write, and catastrophic impact on multi-tenant isolation.

Detection Guidance

Detection of this vulnerability is challenging because it is fundamentally a configuration/data-plane logic flaw rather than a classic memory corruption or injection bug. Detection must focus on the collision artifacts that appear in Traefik logs, Kubernetes event streams, and Gateway API object state.

Sigma Rule

title: Traefik Gateway API Route Identity Collision - Cross-Namespace Overwrite
id: 9f9a2b1c-4e4d-4f7a-9b3a-6c5d8e2f0a1b
status: experimental
description: Detects Traefik log entries indicating duplicate route identities, which may indicate exploitation of CVE-2026-71327.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-71327
author: Valtersit Threat Intelligence
date: 2026/05/15
logsource:
    category: application
    product: traefik
detection:
    selection_duplicate_key:
        - message: '*duplicate route*'
        - message: '*already defined*'
        - message: '*conflict*'
        - message: '*multiple routes matching*'  # generic but can be correlated
    selection_collision_context:
        - message: '*HTTPRoute*'
        - message: '*GRPCRoute*'
        - message: '*TCPRoute*'
        - message: '*TLSRoute*'
    selection_error_level:
        level: error
    condition: selection_duplicate_key and selection_collision_context and selection_error_level
falsepositives:
    - Legitimate misconfiguration by administrators creating overlapping route names (rare).
level: high

YARA Rule

rule Traefik_CVE_2026_71327_RouteIdentityCollision
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects Go binary logic pattern in Traefik builds vulnerable to CVE-2026-71327 (string concatenation of route identity)."
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-71327"
        date = "2026-05-15"
        cve = "CVE-2026-71327"
    strings:
        // Generic Go string format with %s delimiters used for route identity in vulnerable versions.
        $go_identity_fmt = "%s" ascii wide
        // Look for specific concatenation logic in pkg/provider/kubernetes/gateway/*.go
        $route_http_str = "httproute" ascii
        $route_grpc_str = "grpcroute" ascii
        $route_tcp_str = "tcproute" ascii
        $route_tls_str = "tlsroute" ascii
        $concat_hyphen = "-" ascii
        // The file paths where the bug resides in binaries that retain debug paths.
        $debug_path = "pkg/provider/kubernetes/gateway" ascii

    condition:
        uint16(0) == 0x5A4D and // MZ header (PE)
        ( $debug_path or ( $route_http_str and $route_grpc_str and $route_tcp_str and $route_tls_str and $concat_hyphen ) )
}

Suricata IDS Rule

alert http any any -> any any (msg:"ET EXPLOIT Traefik Gateway API Route Collision CVE-2026-71327 Attempt"; flow:established,to_server; content:"|2F|apis|2F|gateway.networking.k8s.io|2F|"; http.uri; content:"httproute"; http.uri; http.host; content:"kube-apiserver"; threshold:type both, track by_src, count 10, seconds 60; reference:cve,2026-71327; classtype:attempted-admin; sid:10067132; rev:1;)

Note: The above rule detects a flood of HTTPRoute creation requests to the Kubernetes API server from the same source IP. It will not catch every instance but can surface anomalous resource creation patterns indicative of collision churn.

Elastic Detection

sequence by process.entity_id with maxspan=5m
  [ file where event.action == "CREATE" and file.name == "*.yaml" and file.path : "*httproute*" ]
  [ network where process.name == "kubectl" and destination.port == 6443 and protocol == "tls" ]
  [ process where process.name == "kubectl" and args : ("apply", "create") ]

Alternative (post-exploitation observation):

any where event.dataset == "traefik.access" and message : ("*route name collides*", "*duplicate route*", "*overwrites existing route*")

Splunk SPL Query

index=traefik sourcetype=traefik:logs
| search ("route already exists" OR "duplicate" OR "conflicting route" OR "multiple routes" OR "overwriting")

index=kube-apiserver sourcetype=kube:authentication
| search objectRef.resource IN ("httproute", "grpcroute", "tcproute", "tlsroute")
| stats count by user.username, sourceIPs{}, objectRef.namespace
| where count > 50

The first query looks for Traefik's own warnings. The second looks for anomalous levels of route creation which may accompany collision exploitation.

Wazuh OSSEC Rule

<group name="traefik,">
  <rule id="100671" level="12">
    <decoded_as>json</decoded_as>
    <field name="message">\.*duplicate route\.*|\.*route already defined\.*|\.*overwriting route\.*|\.*conflicting HTTPRoute\.*|\.*conflicting GRPCRoute\.*|\.*conflicting TCPRoute\.*|\.*conflicting TLSRoute\.*</field>
    <description>Traefik detected a duplicate route identity, potential CVE-2026-71327 exploitation attempt.</description>
    <group>access_control,k8s,traefik,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 — CLAIMED. The patch is claimed by a single source (NVD). It is not yet independently confirmed by the vendor advisory or a verified release. Treat this as a high-probability but unconfirmed fix.

1. Immediate Mitigations (do first)

  • Disable the Kubernetes Gateway API provider if not actively used: set providers.kubernetesGateway = false in the static configuration.
  • Restrict RBAC: Ensure that non-privileged users/tenants cannot create, update, or delete HTTPRoute, GRPCRoute, TCPRoute, or TLSRoute resources. If possible, limit Gateway API resource creation to cluster administrators only.
  • Network Segmentation (Web Application Firewall): Temporarily route traffic through a WAF that can detect anomalous request patterns to the Kubernetes API server.

2. Patch/Upgrade Steps

  • Upgrade to patched version:
    • Upgrade Traefik to 3.6.25 or higher (for the 3.6.x line).
    • Upgrade Traefik to 3.7.10 or higher (for the 3.7.x line).
  • Verification:
    • Download the release binary or container image from the official Traefik registry (e.g., docker pull traefik:v3.6.25).
    • Before deploying, verify the binary does not contain the vulnerable string concatenation by running the YARA rule above or checking the hash against the official release manifest.
    • After upgrading, run a manual test creating two colliding route names and confirm one is rejected with an error such as "route identity conflicts with existing route".
  • Rollback plan: Keep the previous version's image available but note that the vulnerability persists. Do not roll back unless absolutely necessary.

3. Long-Term Hardening

  • Enforce strict RBAC policies: Use ClusterRole and Role bindings to ensure Gateway API resources (HTTPRoute, GRPCRoute, etc.) are only manageable by dedicated cluster-operations teams.
  • Adopt a Policy-as-Code framework (e.g., OPA/Gatekeeper or Kyverno) to reject route names that contain hyphen patterns matching *-*-*-*-* (multi-hyphen) or to enforce a naming convention that requires all route names to include a unique random suffix.
  • Implement audit logging on the Kubernetes API server (--audit-log-path) and monitor for high-frequency creation of Gateway API resources.
  • Isolate tenants with separate Traefik instances for high-security tenants to contain any future blast radius.

4. Patch Verification Steps

  • Cross-check with the official Traefik GitHub releases page for 3.6.25 and 3.7.10.
  • Check the release changelog for the fix commit referencing the Gateway API provider route identity logic.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-71327
  2. Traefik Official Website: https://doc.traefik.io/traefik/providers/kubernetes-gateway/
  3. Kubernetes Gateway API Documentation: https://gateway-api.sigs.k8s.io/
  4. CWE-694 (Protocol Weakening) Definition: https://cwe.mitre.org/data/definitions/694.html
  5. Traefik GitHub Releases (patch verification): https://github.com/traefik/traefik/releases

Threat Actor Campaigns/Exploitation in the Wild: As of this writing, there is no confirmed evidence of exploitation in the wild. The PoC status is Unknown — no public PoC or Nuclei template exists. However, given the architectural nature of the flaw and the prevalence of multi-tenant Kubernetes, operational teams should assume that knowledgeable insiders or tenants could weaponize this flaw even without a public PoC, and prioritize patching accordingly.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Traefik"
http.component:"Traefik"
product:"traefik"
http.server:"traefik"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-71327/ · 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.