CVE-2026-53430
Published: June 15th, 2026
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in elixir-grpc grpc (GRPC.Compressor.Gzip, GRPC.Message modules) allows a denial of service via a gzip decompression bomb.
This vulnerability is associated with program files lib/grpc/compressor/gzip.ex, lib/grpc/message.ex and program routines 'Elixir.GRPC.Compressor.Gzip':decompress/1, 'Elixir.GRPC.Message':from_data/2.
'Elixir.GRPC.Compressor.Gzip':decompress/1 calls :zlib.gunzip/1 directly on attacker-controlled bytes with no decompressed-size limit, ratio check, or incremental decoding. Because this module is the registered gzip GRPC.Compressor implementation, it is invoked automatically whenever an incoming gRPC frame carries the grpc-encoding: gzip header. :zlib.gunzip/1 allocates the entire decompressed result as a single binary, so a small highly compressible payload (for example a few kilobytes of zeros, which gzip compresses at roughly 1000:1) expands to multiple gigabytes inside a single call. The max_receive_message_length limit is enforced only against the already-decompressed message, so it provides no protection. An unauthenticated remote peer can send a single crafted frame to exhaust the BEAM node's heap and trigger an out-of-memory kill.
This issue affects grpc: from 0.4.0 before 1.0.0.
Unknown
CVSS v2:
CVSS v2:
Status
| DocFilters Release | Package | State | Justification | Comment |
|---|---|---|---|---|
| 26.3 | zlib (1.3) | False Positive | Code Not Present | CVE-2026-53430 is a decompression-bomb denial-of-service (CWE-409) vulnerability in elixir-grpc’s ‘grpc’ package, an Elixir/Erlang library distributed via the Hex package manager and classified under the Erlang ecosystem. The flaw is in GRPC.Compressor.Gzip.decompress/1 (lib/grpc/compressor/gzip.ex), which calls the Erlang :zlib.gunzip/1 BIF on attacker-controlled gRPC frame bytes with no size or ratio limit, allocating the full decompressed output as one binary and exhausting the BEAM VM heap. The CVE was flagged against Document Filters because the scanner associated it with our external/zlib-1.3 dependency, but the vulnerability has nothing to do with the C zlib library. Document Filters is a C++ SDK with .NET/Python/Java bindings; it does not use Elixir, Erlang, the BEAM runtime, the Hex ‘grpc’ package, or the Erlang :zlib module. The vulnerable GRPC.Compressor.Gzip.decompress/1 function is not present in this codebase in any form. |
| 26.2 | zlib (1.3) | Needs Triage | ||
| 26.1 | zlib (1.3) | Needs Triage | ||
| 25.4 | zlib (1.3) | Needs Triage | ||
| 25.3 | zlib (1.3) | Needs Triage | ||
| 25.2 | zlib (1.3) | Needs Triage | ||
| 25.1 | zlib (1.3) | Needs Triage | ||
| 24.4 | zlib (1.3) | Needs Triage | ||
| 24.4.0 | zlib (1.3) | Needs Triage | ||
| 24.3 | zlib (1.3) | Needs Triage | ||
| 24.2 | zlib (1.3) | Needs Triage | ||
| 24.1 | zlib (1.3) | Needs Triage | ||
| 23.3 | zlib (1.3) | Needs Triage | ||
| 23.2 | zlib (1.2.12) | Needs Triage | ||
| 23.1 | zlib (1.2.12) | Needs Triage | ||
| 22.4 | zlib (1.2.12) | Needs Triage | ||
| 22.3 | zlib (1.2.12) | Needs Triage | ||
| 22.2 | zlib (1.2.12) | Needs Triage | ||
| 22.1 | zlib (1.2.11) | Needs Triage | ||
| 21.11 | zlib (1.2.11) | Needs Triage | ||
| 21.8 | zlib (1.2.11) | Needs Triage | ||
| 21.5.0 | zlib (1.2.11) | Needs Triage | ||
| 21.2.0 | zlib (1.2.11) | Needs Triage | ||
| 11.4.19.3667 | zlib (1.2.11) | Needs Triage | ||
| 11.4.18.3599 | zlib (1.2.11) | Needs Triage | ||
| 11.4.16.3445 | zlib (1.2.11) | Needs Triage | ||
| 11.4.15.3368 | zlib (1.2.11) | Needs Triage | ||
| 11.4.14.3263 | zlib (1.2.11) | Needs Triage | ||
| 11.4.13.3179 | zlib (1.2.11) | Needs Triage | ||
| 11.4.12.3054 | zlib (1.2.11) | Needs Triage | ||
| 11.4.11.3040 | zlib (1.2.11) | Needs Triage | ||
| 11.4.11.2990 | zlib (1.2.11) | Needs Triage | ||
| 11.4.10.2934 | zlib (1.2.11) | Needs Triage | ||
| 11.4.9.2878 | zlib (1.2.11) | Needs Triage | ||
| 11.4.8.2822 | zlib (1.2.11) | Needs Triage |