Executive brief
Traefik, a popular cloud-native application proxy, is vulnerable to a denial-of-service attack. An unauthenticated attacker can send a specific 8-byte sequence used by Postgres databases to trick the proxy into keeping a connection open indefinitely. By opening many such connections, an attacker can exhaust the server's resources, causing the proxy to stop responding to legitimate traffic and potentially taking all hosted services offline.
Technical details
A vulnerability in Traefik's TCP router protocol detection path allows unauthenticated remote attackers to cause a denial of service. When Traefik detects a Postgres SSLRequest (STARTTLS) prelude, it executes a fast-path in 'pkg/server/router/tcp/router.go' that clears all connection deadlines using 'SetDeadline(time.Time{})'. The subsequent Postgres handler then blocks indefinitely while waiting for a TLS ClientHello that never arrives if the attacker stalls. This leads to file-descriptor and goroutine exhaustion. The vulnerability is reachable on any internet-exposed TCP entrypoint during protocol detection, even if no Postgres or TCP routers are explicitly configured. This issue is addressed in version 3.6.8.
Affected products
- traefik traefik <= 3.6.7
Timeline
- 2026-02-12: advisory: GitHub Advisory GHSA-89p3-4642-cr2w published
- 2026-02-12: patched: Fixed in Traefik v3.6.8