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.
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
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| npm | @grpc/grpc-js | 1.10.9 | GHSA-7v5v-9h63-cj86 |
| npm | @grpc/grpc-js | 1.9.15 | GHSA-7v5v-9h63-cj86 |
| npm | @grpc/grpc-js | 1.8.22 | GHSA-7v5v-9h63-cj86 |
Affected products (as reported)
Weakness: CWE-789 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
References
- https://github.com/grpc/grpc-node/security/advisories/GHSA-7v5v-9h63-cj86 x_refsource_CONFIRM
- https://github.com/grpc/grpc-node/commit/08b0422dae56467ecae1007e899efe66a8c4a650 x_refsource_MISC
- https://github.com/grpc/grpc-node/commit/674f4e351a619fd4532f84ae6dff96b8ee4e1ed3 x_refsource_MISC
- https://github.com/grpc/grpc-node/commit/a8a020339c7eab1347a343a512ad17a4aea4bfdb x_refsource_MISC