GitHub Advisoryadvisory · npm

GHSA-7v5v-9h63-cj86 @grpc/grpc-js can allocate memory for incoming messages well above configured limits

MEDIUM Published 2024-06-10 Modified 2024-06-11 Official page ↗
Aliases
CVE-2024-37168
Ecosystem
npm
Packages
@grpc/grpc-js
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weaknesses
CWE-789
Reviewed
2024-06-10

Affected packages

• npm @grpc/grpc-js: >= 1.10.0, < 1.10.9 → fixed in 1.10.9 • npm @grpc/grpc-js: >= 1.9.0, < 1.9.15 → fixed in 1.9.15 • npm @grpc/grpc-js: < 1.8.22 → fixed in 1.8.22

Description

Impact 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: 1. If an incoming message has a size on the wire greater than the configured limit, the entire message is buffered before it is discarded. 2. 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. Patches This has been patched in versions 1.10.9, 1.9.15, and 1.8.22

Related

Alias · CVE (1)

  • CVE-2024-37168 @grpc/grps-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. vulnerability

Weakness · CWE (1)

  • CWE-789 Memory Allocation with Excessive Size Value weakness

References