CVE-2026-121808 json
Memory exhaustion via compressed Erlang terms in the elixir-grpc Erlpack codec
published 2d ago modified yesterday also EEF-CVE-2026-121808 , EUVD-2026-125529 , GHSA-xxp9-7hp4-rqwp
- cvss
- 8.2
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 53%
- public exploits
- 0
- none known
Summary
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in elixir-grpc grpc_core and grpc allows unauthenticated attackers to exhaust server memory via a compressed Erlang external term in a gRPC message body.
GRPC.Codec.Erlpack.decode/2 (grpc_core/lib/grpc/codec/erlpack.ex, and lib/grpc/codec/erlpack.ex before the package split) passes the message body to :erlang.binary_to_term/2. That function inflates a compressed term in full before it returns. The codec sets no limit on the decoded size, and its type checks run only on the decoded term. The server's max_body_size limit counts the compressed bytes of the request. A request with Content-Type: application/grpc+erlpack can therefore make the server allocate a term much larger than the request body.
This issue affects grpc: from 0.4.0 before 1.0.0; grpc_core: from 1.0.0 before 1.1.0.
Patch / fix
- hex grpc 1.0.0
- hex grpc_core 1.1.0
- elixir-grpc grpc 1.0.0
- elixir-grpc grpc_core 1.1.0
Is CVE-2026-121808 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerExploit prediction
0.70% chance of exploitation in the next 30 days, higher than 53% of all scored CVEs (FIRST EPSS, 2026-11-14).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | grpc | >=0.4.0, <1.0.0 |
1.0.0 |
| hex | grpc_core | >=1.0.0, <1.1.0 |
1.1.0 |
Affected products
- elixir-grpc grpc
- elixir-grpc grpc_core
Classification
- Weakness
-
- CWE-409 Improper Handling of Highly Compressed Data (Data Amplification)
References
-
github.com
/elixir-grpc/grpc/commit/25bcc569fe2cc4478531a6c546c923205fc751c9
related, web
-
github.com
/elixir-grpc/grpc/commit/0332faae5f5e132314794dbfdae5edecbccea292
patch
-
github.com
/elixir-grpc/grpc/commit/d6bc56ac75dfb6c02db2099909210a37c9be8db6
patch
-
github.com
/elixir-grpc/grpc/security/advisories/GHSA-xxp9-7hp4-rqwp
vendor-advisory, related, advisory
-
cna.erlef.org
/cves/CVE-2026-121808.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-121808
related
-
hex.pm
/packages/grpc
package
-
hex.pm
/packages/grpc_core
package
Sources
- CVE List CVE-2026-121808
- NVD CVE-2026-121808
- OSV EEF-CVE-2026-121808
- Maintainer advisory GHSA-xxp9-7hp4-rqwp
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of elixir-grpc/grpc published their own advisory on GitHub. Reviewed sources take precedence over it.