Skip to content

gRPC-Go HTTP/2 Rapid Reset vulnerability

High severity GitHub Reviewed Published Oct 25, 2023 in grpc/grpc-go • Updated Oct 25, 2023

Package

gomod google.golang.org/grpc (Go)

Affected versions

< 1.56.3
>= 1.57.0, < 1.57.1
>= 1.58.0, < 1.58.3

Patched versions

1.56.3
1.57.1
1.58.3

Description

Impact

In affected releases of gRPC-Go, it is possible for an attacker to send HTTP/2 requests, cancel them, and send subsequent requests, which is valid by the HTTP/2 protocol, but would cause the gRPC-Go server to launch more concurrent method handlers than the configured maximum stream limit.

Patches

This vulnerability was addressed by #6703 and has been included in patch releases: 1.56.3, 1.57.1, 1.58.3. It is also included in the latest release, 1.59.0.

Along with applying the patch, users should also ensure they are using the grpc.MaxConcurrentStreams server option to apply a limit to the server's resources used for any single connection.

Workarounds

None.

References

#6703

References

@dfawley dfawley published to grpc/grpc-go Oct 25, 2023
Published to the GitHub Advisory Database Oct 25, 2023
Reviewed Oct 25, 2023
Last updated Oct 25, 2023

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Weaknesses

No CWEs

CVE ID

No known CVE

GHSA ID

GHSA-m425-mq94-257g

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.