Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2026-71327 — traefik

🟠 CVSS 8.0 — High ✅ No Known Exploit NVD
8.0
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

Traefik: Gateway API route identity collision allows cross-namespace backend hijacking

Summary

There is a high severity vulnerability in Traefik's Kubernetes Gateway API provider. Router and service identities for HTTPRoute, GRPCRoute, TCPRoute and TLSRoute objects were built by hyphen-concatenating the route namespace, the route name, the Gateway identity, the entry point and the rule index, a construction that is not injective because Kubernetes names may themselves contain hyphens. Two distinct Routes attached to the same Gateway with equivalent match rules can therefore produce the same identity, and the Route loaded later silently overwrites the earlier one, so a tenant able to create an accepted Route in a colliding namespace/name combination can redirect another namespace's traffic to a backend it controls. All Traefik v3 minor lines are affected; the lines older than v3.6 are no longer maintained and will not receive a patch of their own, so users running them should upgrade to a maintained, patched release.

Patches

  • https://github.com/traefik/traefik/releases/tag/v3.6.25
  • https://github.com/traefik/traefik/releases/tag/v3.7.10

For more information

If you have any questions or comments about this advisory, please [open an issue](https://github.com/traefik/traefik/issues).

<details>

<summary>Original Description</summary>

Summary

Traefik's Kubernetes Gateway provider constructs internal HTTPRoute and

GRPCRoute identities by concatenating namespace, route name, Gateway identity,

entrypoint, and rule index with hyphens. Kubernetes names may themselves

contain hyphens, so the construction is not injective.

For example, HTTPRoutes team/a-app and team-a/app, attached to the same

Gateway with the same match rule, produce identical router and service keys.

During configuration merging, the route loaded later overwrites the earlier

route's maps. A tenant that can create an accepted Route in a colliding

namespace/name combination can therefore redirect another namespace's

traffic to an attacker-controlled backend.

The official v3.7.8 binary was reproduced returning the victim backend before

the second Route was created and the attacker backend immediately afterward.

The victim Route had the earlier creation timestamp and should win the

equivalent-match conflict under Gateway API precedence rules.

Details

The HTTPRoute provider creates a route key as follows:

```go

routeKey := provider.Normalize(fmt.Sprintf(

"%s-%s-%s-gw-%s-%s-ep-%s-%d",

strings.ToLower(kindHTTPRoute),

route.Namespace,

route.Name,

gatewayNamespace,

gatewayName,

listener.EPName,

ri,

))

```

Normalize replaces non-alphanumeric runs with -, but it does not encode

field lengths or otherwise preserve component boundaries:

```go

func Normalize(name string) string {

fargs := func(c rune) bool {

return !unicode.IsLetter(c) && !unicode.IsNumber(c)

}

return strings.Join(strings.FieldsFunc(name, fargs), "-")

}

```

These distinct objects therefore have the same normalized key:

```text

namespace=team, route=a-app

namespace=team-a, route=app

httproute-team-a-app-gw-gateway-shared-ep-web-0

```

makeRouterName adds a hash of the routing rule. When the attacker copies the

victim's hostname and path, that hash is also identical. Child service and

middleware names are derived from the same parent identity.

Each Route is built into a temporary configuration and then merged into the

provider-wide configuration with maps.Copy:

```go

maps.Copy(to.HTTP.Routers, from.HTTP.Routers)

maps.Copy(to.HTTP.Middlewares, from.HTTP.Middlewares)

maps.Copy(to.HTTP.Services, from.HTTP.Services)

maps.Copy(to.HTTP.ServersTransports, from.HTTP.ServersTransports)

```

maps.Copy replaces an existing value for a duplicate key. No collision is

reported, and the resulting router points to the later Route's backend. The

GRPCRoute implementation uses the same delimiter-free route-key format and

the same HTTP configuration merge path.

Attack prerequisites

The attacker needs permission to create or modify an HTTPRoute or GRPCRoute

that the shared Gateway accepts. Exploitation also requires namespace and

Route names whose concatenation collides with a victim. The attacker does not

need permission to read or modify the victim Route, Service, or namespace.

Proof of Concept

Prerequisites:

  • a disposable Kubernetes cluster with Gateway API v1.5.1 experimental CRDs;
  • kubectl configured for that cluster;
  • curl;
  • local TCP port 18080 available.

The following script embeds all objects used by the reproduction. It runs the

official traefik:v3.7.8 image, creates the victim Route first, verifies the

victim backend, then creates the colliding attacker Route and repeats the

request.

```bash

#!/usr/bin/env bash

set -euo pipefail

kubectl apply -f - <<'YAML'

apiVersion: v1

kind: Namespace

metadata:

name: gateway

apiVersion: v1

kind: Namespace

metadata:

name: team

apiVersion: v1

kind: Namespace

metadata:

name

Affected software

CVE-2026-71327 is recorded against 4 packages.

  • github.com/traefik/traefik
  • github.com/traefik/traefik/v2
  • github.com/traefik/traefik/v3
  • unknown

Timeline and source

Published on 18 August 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

github.com (Advisory)
github.com (Fix)
github.com (Fix)
github.com (Web)
github.com (Web)

Other advisories for this package

github.com/traefik/traefik has other advisories on record. If you are patching this one, these are worth checking on the same host:

Details

Severity High
CVSS Score 8.0
CVSS Vector N/A
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2026-08-18
Updated 2026-08-20
Modified 2026-08-18

Affected Packages

Software From version Fixed in
github.com/traefik/traefik — —
github.com/traefik/traefik/v2 — —
github.com/traefik/traefik/v3 — —
unknown — —

Similar Threats

Site Security Check

Is traefik part of your stack?

CVE-2026-71327 is rated CVSS 8.0 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2026
✓