Miggo Logo

CVE-2024-39321: Bypassing IP allow-lists in traefik via HTTP/3 early data requests in QUIC 0-RTT handshakes

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.17357%
Published
7/5/2024
Updated
8/8/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/traefik/traefik/v2go< 2.11.62.11.6
github.com/traefik/traefik/v3go>= 3.0.0-beta3, < 3.0.43.0.4
github.com/traefik/traefik/v3go>= 3.1.0-rc1, < 3.1.0-rc33.1.0-rc3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key components:

  1. The IPAllowLister middleware checks client IPs during request processing without distinguishing between validated and unvalidated (0-RTT) connections
  2. The HTTP/3 server implementation processes early data requests during QUIC 0-RTT handshakes before completing client authentication

Evidence from logs shows the middleware accepted a spoofed IP during 0-RTT processing. Patch notes indicate HTTP/3 0-RTT handling was modified (CVE-2024-39321 fixes in v2.11.6/v3.0.4 specifically mention disabling QUIC 0-RTT). The middleware's IP validation occurs at the HTTP layer before the QUIC handshake completes, making it trust unverified source IPs from early data packets.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t T**r* is * vuln*r**ility in Tr***ik t**t *llows *yp*ssin* IP *llow-lists vi* *TTP/* **rly **t* r*qu*sts in QUI* *-RTT **n*s**k*s s*nt wit* spoo*** IP ***r*ss*s. ### P*t***s - *ttps://*it*u*.*om/tr***ik/tr***ik/r*l**s*s/t**/v*.**.* - *tt

Reasoning

T** vuln*r**ility st*ms *rom two k*y *ompon*nts: *. T** IP*llowList*r mi**l*w*r* ****ks *li*nt IPs *urin* r*qu*st pro**ssin* wit*out *istin*uis*in* **tw**n v*li**t** *n* unv*li**t** (*-RTT) *onn**tions *. T** *TTP/* s*rv*r impl*m*nt*tion pro**ss*s **