Vulnerability Name:

CVE-2021-23351 (CCN-197878)

Assigned:2021-03-07
Published:2021-03-07
Updated:2021-03-23
Summary: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.
CVSS v3 Severity:4.9 Medium (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H)
4.3 Medium (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): High
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): High
5.3 Medium (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L)
4.6 Medium (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Low
CVSS v2 Severity:4.0 Medium (CVSS v2 Vector: AV:N/AC:L/Au:S/C:N/I:N/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Authentication (Au): Single_Instance
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Partial
5.0 Medium (CCN CVSS v2 Vector: AV:N/AC:L/Au:N/C:N/I:N/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Athentication (Au): None
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Partial
Vulnerability Type:CWE-noinfo
Vulnerability Consequences:Denial of Service
References:Source: MITRE
Type: CNA
CVE-2021-23351

Source: XF
Type: UNKNOWN
goproxyproto-cve202123351-dos(197878)

Source: CCN
Type: go-proxyproto GIT Repository
Merge pull request #71 from isedev/feature/issue-69-tests

Source: MISC
Type: Patch, Third Party Advisory
https://github.com/pires/go-proxyproto/commit/7f48261db810703d173f27f3309a808cc2b49b8b

Source: MISC
Type: Third Party Advisory
https://github.com/pires/go-proxyproto/issues/69

Source: MISC
Type: Patch, Third Party Advisory
https://github.com/pires/go-proxyproto/pull/71

Source: FEDORA
Type: Mailing List, Third Party Advisory
FEDORA-2021-e01c1fe4cc

Source: FEDORA
Type: Mailing List, Third Party Advisory
FEDORA-2021-f5fcd9b0c1

Source: CCN
Type: SNYK-GOLANG-GITHUBCOMPIRESGOPROXYPROTO
Denial of Service (DoS)

Source: MISC
Type: Third Party Advisory
https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMPIRESGOPROXYPROTO-1081577

Vulnerable Configuration:Configuration 1:
  • cpe:/a:go-proxyproto_project:go-proxyproto:*:*:*:*:*:*:*:* (Version < 0.5.0)

  • Configuration 2:
  • cpe:/o:fedoraproject:fedora:33:*:*:*:*:*:*:*
  • OR cpe:/o:fedoraproject:fedora:34:*:*:*:*:*:*:*

  • * Denotes that component is vulnerable
    BACK
    go-proxyproto_project go-proxyproto *
    fedoraproject fedora 33
    fedoraproject fedora 34