Skip to main content
← All vulnerabilities
CVE-2024-37168GHSA-7V5V-9H63-CJ86

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.10.9, 1.9.15, 1.8.22
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

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

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • grpc grpc-node

    From 1.10.0 · fixed in 1.10.9; From 1.9.0 · fixed in 1.9.15; fixed in 1.8.22

  • @grpc/grpc-jsnpm

    From 1.10.0 · fixed in 1.10.9

  • @grpc/grpc-jsnpm

    From 1.9.0 · fixed in 1.9.15

  • @grpc/grpc-jsnpm

    fixed in 1.8.22

References 4

GitHub · grpc/grpc-node