Vulnerability · Published Jun 10, 2024 · Assigned by GitHub_M

CVE-2024-37168@grpc/grpc-js can allocate memory for incoming messages well above configured limits

Medium 5.3

In plain English

A medium-severity security flaw in grpc-node from grpc. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.7% (higher than 52% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)5.3Medium
Exploit odds (30 days)0.7%top 47.8% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official 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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
npm@grpc/grpc-js1.10.9GHSA-7v5v-9h63-cj86
npm@grpc/grpc-js1.9.15GHSA-7v5v-9h63-cj86
npm@grpc/grpc-js1.8.22GHSA-7v5v-9h63-cj86

Affected products (as reported)

VendorProductVersions
grpc grpc-node >= 1.10.0, < 1.10.9>= 1.9.0, < 1.9.15< 1.8.22

Weakness: CWE-789 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References