CVE-2021-23351
The package github.com/pires/go-proxyproto before 0.5.0 are vulnerable to Denial of Service (DoS) via the parseVersion1() function. The reader in this package is a default bufio.Reader wrapping a net.Conn. It will read from the connection until it finds a newline. Since no limits are implemented in the code, a deliberately malformed V1 header could be used to exhaust memory in a server process using this code - and create a DoS. This can be exploited by sending a stream starting with PROXY and continuing to send data (which does not contain a newline) until the target stops acknowledging. The risk here is small, because only trusted sources should be allowed to send proxy protocol headers.
EPSS 1.87% · 77.7th percentile
Risk Scores
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Ubuntu:22.04:LTS | golang-github-pires-go-proxyproto | 0.4.2-1, 0 |
Timeline
- Mar 8, 2021 CVE Published
- Apr 14, 2021 EPSS Score
- Jun 23, 2021 EPSS Score
- Oct 26, 2021 EPSS Score
- Dec 28, 2021 EPSS Score
- Jan 6, 2022 EPSS Score
- Mar 1, 2022 EPSS Score
- Apr 1, 2022 EPSS Score
- May 2, 2022 EPSS Score
- Jul 4, 2022 EPSS Score
- Nov 8, 2022 EPSS Score
- Jan 9, 2023 EPSS Score
References
- https://ubuntu.com/security/CVE-2021-23351 third-party-advisory
- https://github.com/pires/go-proxyproto/commit/7f48261db810703d173f27f3309a808cc2b49b8b third-party-advisory
- https://github.com/pires/go-proxyproto/issues/69 third-party-advisory
- https://github.com/pires/go-proxyproto/pull/71 third-party-advisory
- https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMPIRESGOPROXYPROTO-1081577 third-party-advisory
- https://www.cve.org/CVERecord?id=CVE-2021-23351 third-party-advisory