Advisory Database
  • Advisories
  • Dependency Scanning
  1. golang
  2. ›
  3. github.com/traefik/traefik/v3
  4. ›
  5. CVE-2026-88010

CVE-2026-88010: Traefik: BasicAuth singleflight coalescing reintroduces an unauthenticated username-enumeration timing oracle

September 22, 2026 (updated November 4, 2026)

Traefik’s BasicAuth middleware coalesces concurrent credential checks through a singleflight.Group to avoid hashing the same password many times at once. Since v3.6.11 the deduplication key was built from the submitted password plus the stored secret, so it depended on server state: a non-existent username collapsed onto one shared key while each configured username produced its own. Under attacker-controlled concurrency, a probe request arriving inside a leader request’s in-flight window is served the leader’s fast coalesced result when the username does not exist, but computes its own hash (slow) when the username exists — reintroducing, only in the concurrent case, the unauthenticated username-enumeration timing oracle that GHSA-g3hg-j4jv-cwfr had hardened for sequential probing. The fix derives the singleflight key from the submitted credentials (username and password) only, so it no longer depends on whether the account exists or on any stored secret. Traefik v2 is not affected: the v2.11 BasicAuth middleware does not use singleflight coalescing, and Digest authentication is not affected. The impact is limited to username enumeration; no credential disclosure or authentication bypass is possible.

The vulnerability originates on the v3.6 line, which has reached end of life; users on v3.6 or earlier v3.x must upgrade to v3.7.13 to receive the fix.

Confirmed. checkPassword derives the singleflight key from the stored secret, so the key encodes whether the submitted username exists:

  • username absent, secret == "", key = len(P) + ":" + P
  • username present, key = len(P) + ":" + P + secret_T

Every non-existent username therefore lands on one shared key, while every configured username gets its own. singleflight.Group.Do makes a follower on an equal key block on the leader’s in-flight computation and return the leader’s result. So an attacker who sends a leader request with a junk username and password P, then sends the probe for target T with the same P late inside the leader’s window, reads user existence directly off the probe’s latency: coalesced (fast) means T does not exist, own hash (slow) means T does exist.

This is the exact information leak that the notFoundSecret dummy hash at line 127 exists to remove. Sequential probing is fully equalised (measured ratio 1.00x, so the fix for cwfr / 8j2h does work); the leak reappears only under attacker-controlled concurrency. Confirmed on the current v3.7 head, which already carries the 8mrf singleflight fix, and on master (no later fix exists).

References

  • github.com/advisories/GHSA-8fcf-v89g-xpg6
  • github.com/traefik/traefik/commit/ddc1bf4660b85fd61fafdd821eb8216fb1a0b130
  • github.com/traefik/traefik/pull/13816
  • github.com/traefik/traefik/releases/tag/v3.7.13
  • github.com/traefik/traefik/security/advisories/GHSA-8fcf-v89g-xpg6
  • nvd.nist.gov/vuln/detail/CVE-2026-88010

Code Behaviors & Features

Detect and mitigate CVE-2026-88010 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions starting from 3.6.11 before 3.7.13

Fixed versions

  • 3.7.13

Solution

Upgrade to version 3.7.13 or above.

Impact 5.3 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Learn more about CVSS

Weakness

  • CWE-208: Observable Timing Discrepancy

Source file

go/github.com/traefik/traefik/v3/CVE-2026-88010.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sun, 08 Nov 2026 00:15:57 +0000.