Skip to content

github.com/pires/go-proxyproto denial of service vulnerability

Moderate severity GitHub Reviewed Published May 18, 2021 to the GitHub Advisory Database • Updated Sep 14, 2023

Package

gomod github.com/pires/go-proxyproto (Go)

Affected versions

< 0.5.0

Patched versions

0.5.0

Description

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.

References

Reviewed May 18, 2021
Published to the GitHub Advisory Database May 18, 2021
Last updated Sep 14, 2023

Severity

Moderate
4.9
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
High
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H

Weaknesses

CVE ID

CVE-2021-23351

GHSA ID

GHSA-fqh4-rh59-xhvf

Source code

No known source code
Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.