Lucene search

K
githubGitHub Advisory DatabaseGHSA-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
CWE-789
GitHub Advisory Database
github.com
6
memory allocation
incoming messages
message size
decompression
buffer
discard
patch
software vulnerability

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

7.2 High

AI Score

Confidence

Low

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

Affected configurations

Vulners
Node
grpcgrpcRange<1.8.22
OR
grpcgrpcRange<1.9.15
OR
grpcgrpcRange<1.10.9

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

7.2 High

AI Score

Confidence

Low

0.0005 Low

EPSS

Percentile

17.2%