CVE-2026-88879·Traefik vulnerability
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.
- Severity
- high
- Software
- Traefik
- Fixed in
- 3.7.12
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 0.30% — higher than 20% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2026-88879 scores 8.2 on CVSS, so a successful attack would be serious — but at 0.30%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 3.0.0
Until: 3.7.12
Fixed in: 3.7.12
How to fix this CVE
Upgrade Traefik to version 3.7.12 or later to address a header canonicalization bypass that allows attackers to spoof authentication headers. Additionally, configure the aliasHeadersStrategy entry-point option to 'delete' or 'reject' (not the default 'keep') to enforce strict header validation and prevent client-supplied header aliases from bypassing Traefik's middleware controls.
sudo dnf update traefikDefensia detects this vulnerability
What an exploitation attempt looks like
Sample log line indicative of exploitation attempts:
POST|GET .* HTTP/1\.1.*X[._]Auth[._]User:.*\|X[._]Authenticated[._]User:.*\|X[._]Remote[._]User:.*WAF mitigation (if patching is not yet possible)
Add this rule to your WAF to block exploitation attempts while you schedule the patch.
Implement a WAF rule that blocks requests containing header name variations (underscores or dots in place of dashes) for sensitive authentication headers such as X-Authenticated-User, X-Auth-User, X-Remote-User, or custom ForwardAuth headers. Normalize all inbound headers to dash-separated lowercase before forwarding to Traefik.How to check if you are affected
- Check installed Traefik version: traefik version or docker exec <container_id> traefik version
- Verify your entry-point configuration: grep -r 'aliasHeadersStrategy' /etc/traefik/ or check your traefik.yaml/traefik.toml for the presence of this setting
- Search logs for suspicious header variations: grep -i 'x[._-]auth' /var/log/traefik/access.log to identify requests with dot or underscore variants of managed headers
- Confirm the fix: Run traefik version and confirm output shows v3.7.12 or higher, and validate aliasHeadersStrategy is set to 'delete' or 'reject' in your configuration files
FAQ
What is CVE-2026-88879?
This vulnerability allows attackers to bypass Traefik's header validation by supplying dot or underscore variants of headers (e.g., X.Authenticated.User instead of X-Authenticated-User). Backend systems normalize these variants into the same variable, allowing an attacker to inject unauthorized identity claims that Traefik's middleware fails to catch.
Is CVE-2026-88879 being actively exploited?
No, there is no evidence of active exploitation in the CISA KEV catalog and no public exploits are available. However, the vulnerability is straightforward to exploit and should be patched immediately to prevent opportunistic attacks.
What versions of Traefik are affected by CVE-2026-88879?
Traefik v1.x, v2.x through v2.11.55, and v3.0.0 through v3.7.11 are affected. The fix is available in v2.11.56 and v3.7.12 or later.
How do I check if my server is vulnerable to CVE-2026-88879?
Run 'traefik version' to check your installed version. If it reports 3.7.11 or earlier, you are vulnerable. Additionally, check that aliasHeadersStrategy is explicitly configured as 'delete' or 'reject'—the default 'keep' does not mitigate the risk.
Does Defensia detect CVE-2026-88879?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Traefik is installed on a monitored server, CVE-2026-88879 will appear in your dashboard with remediation steps.
Related Traefik CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-88879. Free for 1 server.
Get started free