Skip to content
OpenAdvisories
High · 7.5 CVE-2023-33953 EUVD-2023-2204GHSA-496j-2rq6-j6ccPYSEC-2026-1424

Denial-of-Service in gRPC

Published Aug 9, 2023 · Updated Sep 27, 2024 · Assigned by Google

Description

gRPC contains a vulnerability that allows hpack table accounting errors could lead to unwanted disconnects between clients and servers in exceptional cases/ Three vectors were found that allow the following DOS attacks:

- Unbounded memory buffering in the HPACK parser
- Unbounded CPU consumption in the HPACK parser

The unbounded CPU consumption is down to a copy that occurred per-input-block in the parser, and because that could be unbounded due to the memory copy bug we end up with an O(n^2) parsing loop, with n selected by the client.

The unbounded memory buffering bugs:

- The header size limit check was behind the string reading code, so we needed to first buffer up to a 4 gigabyte string before rejecting it as longer than 8 or 16kb.
- HPACK varints have an encoding quirk whereby an infinite number of 0’s can be added at the start of an integer. gRPC’s hpack parser needed to read all of them before concluding a parse.
- gRPC’s metadata overflow check was performed per frame, so that the following sequence of frames could cause infinite buffering: HEADERS: containing a: 1 CONTINUATION: containing a: 2 CONTINUATION: containing a: 3 etc…

Affected products

VendorProductAffectedFixed
Google gRPC < 1.56.1 1.56.1

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.

ReleasePackageFixed inAdvisory
Debian 14 grpc No fix yet —
Debian 13 grpc No fix yet —
Debian 12 grpc No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 grpc No fix yet —
Ubuntu 26.04 LTS grpc No fix yet —
Ubuntu 25.10 grpc No fix yet —
Ubuntu 24.04 LTS grpc No fix yet —
Ubuntu 22.04 LTS grpc No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS grpc No fix yet —
Ubuntu 18.04 LTS grpc No fix yet —
Ubuntu 16.04 LTS grpc No fix yet —
ReleasePackageFixed inAdvisory
RHEL 9 rhc-worker-playbook 0.1.10-1.el9_5 RHSA-2024:10761
ReleasePackageFixed inAdvisory
SLES 15 SP7 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1
SLES 15 SP6 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1
SLES 15 SP5 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLES 15 SP5 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1, SUSE-SU-2024:0573-1
SLES 15 SP5 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 15 SP5 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 15 SP4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLES 15 SP4 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1, SUSE-SU-2024:0573-1
SLES 15 SP4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 15 SP4 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 3 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 3 python-abseil 1.4.0-150400.9.3.1 SUSE-SU-2024:0573-1
SLES 3 python-grpcio 1.60.0-150400.9.3.2 SUSE-SU-2024:0573-1
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP6 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1
SLES for SAP 15 SP5 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1
SLES for SAP 15 SP4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLES for SAP 15 SP4 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1, SUSE-SU-2024:0573-1
SLES for SAP 15 SP4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLES for SAP 15 SP4 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
SLE Micro 5.5 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLE Micro 5.5 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLE Micro 5.4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLE Micro 5.4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLE Micro 5.3 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLE Micro 5.3 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLE HPC 15 SP5 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1
SLE HPC 15 SP4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SLE HPC 15 SP4 grpc 1.25.0-150200.3.10.1 SUSE-SU-2026:0840-1, SUSE-SU-2024:0573-1
SLE HPC 15 SP4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SLE HPC 15 SP4 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
SUSE Manager Proxy 4.3 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SUSE Manager Proxy 4.3 grpc 1.60.0-150400.8.3.2 SUSE-SU-2024:0573-1
SUSE Manager Proxy 4.3 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SUSE Manager Proxy 4.3 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
SUSE Linux Enterprise Installer Updates 15 SP5 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SUSE Linux Enterprise Installer Updates 15 SP5 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
SUSE Linux Enterprise Installer Updates 15 SP4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
SUSE Linux Enterprise Installer Updates 15 SP4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 grpc 1.60.0-150400.8.3.2 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 opencensus-proto 0.3.0+git.20200721-150400.9.3.1 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 python-abseil 1.4.0-150400.9.3.1 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 python-grpcio 1.60.0-150400.9.3.2 SUSE-SU-2024:0573-1
openSUSE Leap 15.5 re2 20240201-150400.9.3.1 SUSE-SU-2024:0573-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.4 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
openSUSE Leap Micro 5.4 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1
openSUSE Leap Micro 5.3 abseil-cpp 20230802.1-150400.10.4.1 SUSE-SU-2024:0573-1
openSUSE Leap Micro 5.3 protobuf 25.1-150400.9.3.1 SUSE-SU-2024:0573-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 grpc 1.62.0-2 —
Azure Linux 2 (CBL-Mariner) grpc No fix yet —
Azure Linux 2 (CBL-Mariner) python-tensorboard 2.11.0-2 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI grpcio < 1.53.2 · >= 1.54.0, < 1.54.3 · >= 1.55.0, < 1.55.2 · >= 1.56.0, < 1.56.2 1.53.2, 1.54.3, 1.55.2, 1.56.2 PYSEC-2026-1424
PyPI grpcio < 1.53.2 1.53.2 GHSA-496j-2rq6-j6cc
PyPI grpcio >= 1.54.0, < 1.54.3 1.54.3 GHSA-496j-2rq6-j6cc
PyPI grpcio >= 1.55.0, < 1.55.2 1.55.2 GHSA-496j-2rq6-j6cc
PyPI grpcio >= 1.56.0, < 1.56.2 1.56.2 GHSA-496j-2rq6-j6cc
RubyGems grpc < 1.53.2 1.53.2 GHSA-496j-2rq6-j6cc
RubyGems grpc >= 1.54.0, < 1.54.3 1.54.3 GHSA-496j-2rq6-j6cc
RubyGems grpc >= 1.55.0, < 1.55.2 1.55.2 GHSA-496j-2rq6-j6cc
RubyGems grpc >= 1.56.0, < 1.56.2 1.56.2 GHSA-496j-2rq6-j6cc

Advisories 8

References