---
id: CVE-2026-88879
title: Traefik is an HTTP reverse proxy and load balancer
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 disti…
severity: high
cvss: 8.2
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N'
cwe:
  - CWE-290
  - CWE-444
vendor: traefik
product: traefik
affected:
  - 'traefik >= 1.0, < 2.11.56'
  - 'traefik >= 3.0.0, < 3.7.12'
patched:
  - traefik 3.7.12
published: '2026-09-10'
updated: '2026-09-14'
sourceUpdated: '2026-09-14T19:58:33.037'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-88879'
references:
  - url: 'https://github.com/traefik/traefik/security/advisories/GHSA-rf44-j88r-hh8c'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/traefik-before-2.11.56-identity-spoofing-via-header-alias
    label: disclosure@vulncheck.com
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-88879.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-88879'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2531425'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-88879'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-88879'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00207
epssPercentile: 0.11065
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-10T15:03:25.506535Z'
scores:
  nvd: 8.2
  cna: 5.3
  vendor: 9.6
ingestedAt: '2026-09-10T13:50:37.334Z'
---

## Overview

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.

## Affected

- `traefik >= 1.0, < 2.11.56`
- `traefik >= 3.0.0, < 3.7.12`

## Remediation

Upgrade past the affected range:

- `traefik 3.7.12`

## Vendor advisories

- **Red Hat VEX** · Critical · affected: Red Hat OpenShift Dev Spaces · no fix planned: Red Hat OpenShift Dev Spaces · updated 2026-09-14 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-88879.json)
