Skip to content
OpenAdvisories
Medium · 5.3 CVE-2024-37168 EUVD-2024-1970GHSA-7v5v-9h63-cj86

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

Published Jun 10, 2024 · Updated Aug 2, 2024 · Assigned by GitHub_M

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 products

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

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling jitsucom-jitsu +2 2.7.0-r1 —
Wolfi rolling kubeflow-centraldashboard 1.8.0-r5 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @grpc/grpc-js >= 1.10.0, < 1.10.9 1.10.9 GHSA-7v5v-9h63-cj86
npm @grpc/grpc-js >= 1.9.0, < 1.9.15 1.9.15 GHSA-7v5v-9h63-cj86
npm @grpc/grpc-js < 1.8.22 1.8.22 GHSA-7v5v-9h63-cj86

Advisories 1

References