CVE-2021-23409: github.com/pires/go-proxyproto vulnerable to DoS via Connection descriptor exhaustion
7.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.74817%
CWE
Published
7/26/2021
Updated
8/30/2023
KEV Status
No
Technology
Go
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
github.com/pires/go-proxyproto | go | < 0.6.1 | 0.6.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stemmed from improper handling of read deadlines during proxy protocol header processing. The commit diff shows that in protocol.go
, the Listener.Accept
method originally set a fixed deadline without resetting it, and Conn.readHeader
lacked logic to restore user-configured deadlines after header parsing. This allowed connections without headers to persist indefinitely (pre-0.6.0) or cause premature timeouts (0.6.0). The 0.6.1 patch introduced deadline resetting in readHeader
and proper timeout inheritance, confirming these functions' roles in the vulnerability.