Medium severity · published Jun 10, 2024
CVE-2024-37168
@grpc/grpc-js can allocate memory for incoming messages well above configured limits
5.3
CVSS
0.7%
EPSS
No
On KEV
Description
@grpc/grps-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to versions 1.10.9, 1.9.15, and 1.8.22, there are two separate code paths in which memory can be allocated per message in excess of the `grpc.max_receive_message_length` channel option: If an incoming message has a size on the wire greater than the configured limit, the entire message is buffered before it is discarded; and/or if an incoming message has a size within the limit on the wire but decompresses to a size greater than the limit, the entire message is decompressed into memory, and on the server is not discarded. This has been patched in versions 1.10.9, 1.9.15, and 1.8.22.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
None
Availability
Low
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.7% · higher than 52% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
GR
grpc-node · grpc
>= 1.10.0, < 1.10.9; >= 1.9.0, < 1.9.15; < 1.8.22 · source: vendor
GR
Grpc · Grpc
1.10.0 before 1.10.9; 1.9.0 before 1.9.15; before 1.8.22 · source: CISA
Affected product
GR
grpc-node
grpc
More from grpc-node
7.5
CVE-2026-48069
@grpc/grps-js: An incoming malformed compressed message can cause a client or server crash
7.5
CVE-2026-48068
@grpc/grps-js: A malformed request can cause a server crash
7.4
CVE-2026-101916
@grpc/grpc-js: In certain configurations, getAuthContext can return unauthorized certificates as though they were authorized
6.5
CVE-2026-101914
@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches
3.7
CVE-2026-101915
@grpc/grpc-js: The server transmits some error messages thrown by method handlers to the client in status messages