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

CVE-2026-88879

CVE-2026-88879 Vulnerability in Traefik
📅 PUBLISHED: 2026-09-10 00:00 UTC 🔄 UPDATED: 2026-10-07 18:47 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.29%
👁️
0.29% probability
7.4× 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
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 10.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: C Scope Changed
C: H Confidentiality High
I: H Integrity High
A: N Availability None
10.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-88879 is an authentication bypass vulnerability in Traefik, an HTTP reverse proxy and load balancer, caused by incomplete HTTP header name canonicalization. In affected versions (v1.x, v2.x through v2.11.55, v3.0.0 through v3.7.11), header names are canonicalized only on dashes, so variants like X-Auth-User, X_Auth_User, and X.Auth.User are treated as distinct headers by Traefik but are collapsed into a single variable by downstream backends (CGI, WSGI, PHP, NGINX, and others). A client can therefore smuggle a dot-form alias of a header that Traefik manages — for example supplying X.Authenticated.User alongside the canonical X-Authenticated-User written by the ForwardAuth middleware — causing the backend to read the client-supplied value instead of the identity Traefik asserted. Any organization relying on Traefik for authentication enforcement (especially ForwardAuth) in front of backends that derive variable names from header names is at risk of privilege escalation; a client admitted as a low-privilege identity can be treated as a different user or role.

⚡ 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

Traefik is an HTTP reverse proxy and load balancer commonly deployed at the network edge or in front of application services. The vulnerability stems from how Traefik canonicalizes HTTP header names prior to middleware processing and backend forwarding. In the affected versions, canonicalization is performed only on dashes. This means that header names differing by underscore or dot separators are not normalized to a single canonical form:

  • X-Auth-User
  • X_Auth_User
  • X.Auth.User

are handled by Traefik as three independent headers.

By contrast, many backend runtimes and web servers derive environment variable or server variable names from the incoming header names. CGI, WSGI, PHP, and NGINX (and other implementations) collapse dashes, underscores, and dots into a single variable naming convention (e.g., converting all of them to underscores to form a variable name). This collapsing behavior is the core of the discrepancy: Traefik sees distinct headers, while the backend sees one variable.

The attack mechanism is header smuggling via alias form. Traefik's middleware (such as ForwardAuth, but not limited to it) is responsible for writing a trusted header — for example the canonical X-Authenticated-User. Because the middleware only manages the canonical dash form, an attacker can supply a dot-form alias such as X.Authenticated.User in the original client request. Traefik does not strip or recognize this as the same header the middleware manages, so it passes through. When the request reaches a backend that collapses dot and dash forms into the same variable, the backend may read the attacker-supplied value rather than the value Traefik wrote.

The NVD description states that 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. This means that under that tested configuration the client-controlled alias reliably overrides the middleware-written value, rather than being a race condition or order-dependent outcome.

The vulnerability is an incomplete fix for GHSA-x677-9fxg-v5c5, which blocked only the underscore form. This indicates a prior remediation addressed X_Auth_User-style aliases but did not address X.Auth.User-style dot aliases, and the new fix introduces the aliasHeadersStrategy entry-point option to handle this class. Importantly, the option defaults to keep for backwards compatibility, so the fix is only effective if explicitly set to delete or reject. This is a critical operational caveat: upgrading alone does not remediate the issue unless the strategy is explicitly configured. Unmaintained release lines will not receive a patch.

Because any header Traefik sets is affected, not only ForwardAuth's, the scope of impact is broader than authentication identity headers. Any security-relevant header set by Traefik middleware (for example identity, role, authorization, or routing-related headers) may be shadowed by a client-supplied alias.

Exploitation Scenarios

No public PoC is available; the attack chain is inferred from the vulnerability class (improper header canonicalization / CWE-290) and from the NVD description.

  1. Reconnaissance/target identification: The attacker identifies an application fronted by Traefik in an affected version range (v1.x, v2.x through v2.11.55, v3.0.0 through v3.7.11). Fingerprinting is possible via Traefik's default headers, error pages, or the presence of a Traefik dashboard. The attacker determines whether Traefik is performing authentication enforcement (e.g., using ForwardAuth) and whether backends derive variable names from header names (CGI, WSGI, PHP, NGINX and similar).

  2. Triggering the flaw: The attacker crafts an HTTP request that includes a dot-form alias of a header Traefik manages. For example, alongside any legitimate request the attacker supplies X.Authenticated.User. Traefik canonicalizes only on dashes, so the dot-form alias is not treated as the same header as the canonical X-Authenticated-User written by the ForwardAuth middleware; the alias passes through to the backend.

  3. Execution method at the vulnerability-class level: The backend collapses dot and dash forms into a single variable name. The attacker-supplied value is therefore read by the backend in place of the value Traefik asserted. In the tested configuration (PHP 8.2 built-in SAPI over an HTTP/1 backend path), Go's lexical header ordering deterministically favors the attacker-supplied value, making the override reliable rather than probabilistic. At this stage the attacker is effectively presenting a chosen identity or role value directly to the backend.

  4. Post-exploitation impact: A client that ForwardAuth admits as a low-privilege identity can be treated by the backend as a different user or role, resulting in privilege escalation and unauthorized access to data or functionality reserved for higher-privileged identities. Because any header Traefik sets is affected, the attacker can also attempt to override other Traefik-managed headers beyond ForwardAuth identity headers.

Impact Assessment

The vulnerability is an authentication/authorization bypass through header smuggling. The primary impact is privilege escalation: a low-privilege, authenticated client can be interpreted by the backend as a higher-privileged user or role. In deployments where Traefik is the sole authentication enforcement point in front of internal applications, this can expose protected data and administrative functions. The NVD description notes any header Traefik sets is affected, not only ForwardAuth's, which potentially broadens integrity and access-control impact across middleware-managed headers.

Referencing CVSS subscores consistent with a network-reachable, low-complexity, no-privilege, no-user-interaction flaw with scope change and high confidentiality/integrity impact (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N), the blast radius extends to any application behind affected Traefik instances that uses name-derived backend variables. Availability is not directly impacted. The absence of a public PoC or CISA KEV listing does not reduce severity, because the flaw is deterministic in the tested configuration and affects a widely deployed edge proxy. The mandatory opt-in nature of the fix (aliasHeadersStrategy defaults to keep) means many upgraded-but-misconfigured deployments remain vulnerable, extending operational exposure.

Detection Guidance

Sigma Rule

title: Traefik Header Alias Smuggling Attempt (Dot-Form Alias of Managed Header)
id: 9f4c2a1e-7b3d-4c8a-9e21-5d6f0a2b7c10
status: experimental
description: Detects HTTP requests containing dot-form aliases of headers commonly set by Traefik middleware (e.g., X.Authenticated.User), indicative of CVE-2026-88879 header smuggling.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-88879
author: valtersit.com
date: 2026/01/01
logsource:
  category: webserver
detection:
  selection_headers:
    cs-uri-query|contains:
      - 'X.Authenticated.User'
      - 'X.Authenticated.Role'
      - 'X.Auth.User'
      - 'X.Forwarded.User'
  selection_header_pattern:
    cs-headers|re: '(?i)X\.[A-Za-z]+\.(User|Role|Auth|Authenticated|Forwarded)'
  condition: selection_headers or selection_header_pattern
falsepositives:
  - Legitimate application headers using dot notation unrelated to Traefik-managed names
level: high
tags:
  - attack.t1190
  - cve.2026.88879

YARA Rule

rule CVE_2026_88879_Traefik_Header_Alias_Smuggling
{
    meta:
        description = "Detects HTTP request lines/headers containing dot-form aliases of Traefik-managed headers (CVE-2026-88879)"
        author = "valtersit.com"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-88879"
        date = "2026-01-01"
        severity = "high"

    strings:
        $h1 = "X.Authenticated.User" ascii nocase
        $h2 = "X.Authenticated.Role" ascii nocase
        $h3 = "X.Auth.User" ascii nocase
        $h4 = "X.Forwarded.User" ascii nocase
        $h5 = "X.Auth.Role" ascii nocase

    condition:
        any of them
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-88879 Traefik Header Alias Smuggling Attempt (dot-form alias)"; flow:established,to_server; http.header_names; content:"X.Authenticated.User"; nocase; sid:2026888791; rev:1; reference:cve,2026-88879; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-88879; classtype:attempted-admin; metadata:created_at 2026_01_01;)

Elastic Detection

sequence by source.ip with maxspan=30s
  [network where http.request.method == "GET" or http.request.method == "POST"]
  [http where http.request.headers contains "X.Authenticated.User" or
            http.request.headers contains "X.Authenticated.Role" or
            http.request.headers contains "X.Auth.User" or
            http.request.headers contains "X.Forwarded.User"]

Splunk SPL Query

index=web OR index=proxy sourcetype=access_combined OR sourcetype=traefik
| regex _raw="(?i)X\.[A-Za-z]+\.(User|Role|Auth|Authenticated|Forwarded)"
| stats count min(_time) as first_seen max(_time) as last_seen values(src_ip) as source_ips values(uri) as uris by host
| where count > 0
| sort - count

Wazuh OSSEC Rule

<group name="web,traefik,cve-2026-88879,">
  <rule id="202688879" level="12">
    <decoded_as>web-accesslog</decoded_as>
    <regex type="pcre2">(?i)X\.[A-Za-z]+\.(User|Role|Auth|Authenticated|Forwarded)</regex>
    <description>CVE-2026-88879: Possible Traefik header alias smuggling via dot-form alias of managed header</description>
    <mitre>
      <id>T1190</id>
    </mitre>
    <group>attack,t1190,cve_2026_88879,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). The NVD description references fixed versions v2.11.56 and v3.7.12, but no vendor advisory, patch source, or workaround has been confirmed by any tracked source; treat all remediation as unverified until the vendor advisory is independently validated.

  1. Immediate mitigations:
  • Upgrade to v2.11.56 or v3.7.12 if those builds are available in your distribution channel, and explicitly set the aliasHeadersStrategy entry-point option to delete or reject. Because it defaults to keep for backwards compatibility, upgrading without configuring this option does NOT remediate the vulnerability.
  • If upgrade is not immediately possible, deploy an upstream reverse proxy or WAF that rejects or strips requests containing header names with dots or underscores that collide with Traefik-managed header names (e.g., X.Authenticated.User, X.Authenticated.Role, X.Auth.User, X.Forwarded.User).
  • Audit middleware that relies on Traefik-asserted headers (ForwardAuth and any other header-setting middleware) and verify whether downstream backends derive variables from header names (CGI, WSGI, PHP, NGINX).
  • For unmaintained release lines, the NVD description states no patch will be provided; migration to a maintained line is required.
  1. Patch/upgrade steps:
  • Identify every Traefik instance and its version across edge and internal deployments.
  • Plan migration to a maintained release line and then to v2.11.56 or v3.7.12.
  • After upgrade, configure aliasHeadersStrategy to delete or reject in the entry-point configuration and verify the setting is active.
  • Re-test authentication flows to confirm the alias no longer reaches the backend.
  1. Long-term hardening:
  • Normalize or reject non-canonical header names at the edge (strip underscore and dot variants of trusted header names).
  • Avoid relying on a single proxy for authentication assertions where possible; enforce authorization at the backend as defense in depth.
  • Add continuous monitoring for dot-form and underscore-form aliases of managed headers in web and proxy logs.
  • Maintain an asset inventory to track Traefik versions and ensure unmaintained lines are retired.

References

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-88879
  • GHSA-x677-9fxg-v5c5 (prior incomplete fix referenced in the NVD description; upstream advisory for the underscore form)
  • Traefik project release notes for v2.11.56 and v3.7.12 (verify the aliasHeadersStrategy option and fixed version claims independently)
  • CWE-290: Authentication Bypass by Spoofing — https://cwe.mitre.org/data/definitions/290.html
  • CISA KEV: NOT listed as of this report; no publicly known exploit-in-the-wild or threat actor campaign evidence was provided. No public PoC or Nuclei template identified.
👁️ 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.

product:
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-88879/ · 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.