CVE-2024-37168

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

State
Published
Severity
5.3 Medium
Published
Jun 10, 2024
Updated
Aug 2, 2024
Reserved
Jun 3, 2024

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.15.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:LGitHub_M

Weaknesses

  • CWE-789 Memory Allocation with Excessive Size Value

Affected Products

ProductVersions
grpc-nodegrpc
  • >= 1.10.0, < 1.10.9Affected
  • >= 1.9.0, < 1.9.15Affected
  • < 1.8.22Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.