Lucene search

K
osvGoogleOSV:GHSA-7V5V-9H63-CJ86
HistoryJun 10, 2024 - 9:38 p.m.

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

2024-06-1021:38:05
Google
osv.dev
7
grpc-js
memory allocation
message size
buffer
decompression
patch
software
security issue

5.3 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

LOW

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

6.9 Medium

AI Score

Confidence

High

0.0005 Low

EPSS

Percentile

17.2%

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

5.3 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

LOW

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

6.9 Medium

AI Score

Confidence

High

0.0005 Low

EPSS

Percentile

17.2%