Skip to main content
← All vulnerabilities
CVE-2026-88879GHSA-RF44-J88R-HH8CGO-2026-6455

Traefik before v2.11.56 Identity Spoofing via Header Alias

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.11.56, 3.7.12
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

Traefik is an HTTP reverse proxy and load balancer. In Traefik v1.x, v2.x through v2.11.55, and v3.0.0 through v3.7.11, header names are canonicalized only on dashes, so X-Auth-User, X_Auth_User and X.Auth.User are treated as three distinct headers by Traefik, while backends that derive variable names from header names (CGI, WSGI, PHP, NGINX and others) collapse them into a single variable. A client can therefore smuggle a dot-form alias of a header that Traefik manages past the middleware managing it — for example supplying X.Authenticated.User alongside the canonical X-Authenticated-User written by the ForwardAuth middleware — causing such a backend to read the client-supplied value instead of the identity Traefik asserted. In the tested configuration (PHP 8.2 built-in SAPI over an HTTP/1 backend path), Go's lexical header ordering makes the attacker-supplied value win deterministically, so a client that ForwardAuth admits as a low-privilege identity can be treated by the backend as a different user or role. Any header Traefik sets is affected, not only ForwardAuth's. This is an incomplete fix for GHSA-x677-9fxg-v5c5, which blocked only the underscore form. Fixed in v2.11.56 and v3.7.12, which add the aliasHeadersStrategy entry-point option; because it defaults to 'keep' for backwards compatibility, it must be explicitly set to 'delete' or 'reject' for the fix to take effect. Unmaintained release lines will not receive a patch.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • traefik traefik

    fixed in 2.11.56

  • traefik traefik

    From 3.0.0 · through 3.7.13

  • github.com/traefik/traefik/v2Go

    fixed in 2.11.56

  • github.com/traefik/traefik/v3Go

    From 3.0.0 · fixed in 3.7.12

  • github.com/traefik/traefikGo

    All versions

References 2

GitHub · traefik/traefik

vulncheck.com