Bug 13852

Summary: [CVE 21] grpc 1.30.2 CVEs found
Product: [ROSA-based products] ROSA Fresh Reporter: Yury <y.tumanov>
Component: System (kernel, glibc, systemd, bash, PAM...)Assignee: ROSA Linux Bugs <bugs>
Status: RESOLVED WONTFIX QA Contact: ROSA Linux Bugs <bugs>
Severity: critical    
Priority: Highest CC: a.proklov, e.kosachev, s.matveev, v.potapov, y.tumanov
Version: AllFlags: y.tumanov: secteam_verified+
Target Milestone: ---   
Hardware: All   
OS: Linux   
URL: CVE-2023-32732, CVE-2023-33953, CVE-2023-4785, CVE-2023-44487,
Whiteboard:
Platform: 2021.1 ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:

Description Yury 2023-10-18 20:25:59 MSK
Please patch CVEs for package grpc version 1.30.2
  
INFO (CVEs are): grpc 1.30.2
 cves found
CVE-2023-32732
Desc: gRPC contains a vulnerability whereby a client can cause a termination of connection between a HTTP2 proxy and a gRPC server: a base64 encoding error for `-bin` suffixed headers will result in a disconnection by the gRPC server, but is typically allowed by HTTP2 proxies. We recommend upgrading beyond the commit in  https://github.com/grpc/grpc/pull/32309 https://www.google.com/url 

Link: https://nvd.nist.gov/vuln/detail/CVE-2023-32732
Severity: MEDIUM
CVE-2023-33953
Desc: gRPC contains a vulnerability that allows hpack table accounting errors could lead to unwanted disconnects between clients and servers in exceptional cases/ Three vectors were found that allow the following DOS attacks:

- Unbounded memory buffering in the HPACK parser
- Unbounded CPU consumption in the HPACK parser

The unbounded CPU consumption is down to a copy that occurred per-input-block in the parser, and because that could be unbounded due to the memory copy bug we end up with an O(n^2) parsing loop, with n selected by the client.

The unbounded memory buffering bugs:

- The header size limit check was behind the string reading code, so we needed to first buffer up to a 4 gigabyte string before rejecting it as longer than 8 or 16kb.
- HPACK varints have an encoding quirk whereby an infinite number of 0’s can be added at the start of an integer. gRPC’s hpack parser needed to read all of them before concluding a parse.
- gRPC’s metadata overflow check was performed per frame, so that the following sequence of frames could cause infinite buffering: HEADERS: containing a: 1 CONTINUATION: containing a: 2 CONTINUATION: containing a: 3 etc…
Link: https://nvd.nist.gov/vuln/detail/CVE-2023-33953
Severity: HIGH
CVE-2023-4785
Desc: Lack of error handling in the TCP server in Google's gRPC starting version 1.23 on posix-compatible platforms (ex. Linux) allows an attacker to cause a denial of service by initiating a significant number of connections with the server. Note that gRPC C++ Python, and Ruby are affected, but gRPC Java, and Go are NOT affected. 
Link: https://nvd.nist.gov/vuln/detail/CVE-2023-4785
Severity: HIGH
CVE-2023-44487
Desc: The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.
Link: https://nvd.nist.gov/vuln/detail/CVE-2023-44487
Severity: HIGH
Comment 1 Vladimir Potapov 2023-10-20 13:09:15 MSK
*** Bug 13720 has been marked as a duplicate of this bug. ***
Comment 2 Vladimir Potapov 2023-10-20 13:09:29 MSK
*** Bug 13527 has been marked as a duplicate of this bug. ***
Comment 3 Aleksandr Proklov 2023-10-30 09:15:55 MSK
CVE-2023-32732 не накладывается, нет кода
CVE-2023-33953 это на java пакет какой-то чтоли, патча нету.
CVE-2023-44487 - это вобще месиво, нереально закрыть в этой версии
https://github.com/grpc/grpc/pull/34763

CVE-2023-4785 - на нашу версию не бэкпортируется, нет такого кода
Comment 4 Yury 2023-10-31 16:50:18 MSK
secteam_verified