cve.bz

CVE-2026-121809 CPU exhaustion via a truncated gRPC message on streaming RPCs in elixir-grpc grpc_server

8.2 highFix available

High (8.2) in elixir-grpc. Fixed in grpc_server 1.1.0.

On this page
Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in elixir-grpc grpc_server and grpc allows unauthenticated attackers to occupy a BEAM scheduler indefinitely via a client-streaming or bidirectional-streaming request whose body ends inside a gRPC message. GRPC.Server.Adapters.Cowboy.read_stream/1 (grpc_server/lib/grpc/server/adapters/cowboy.ex, and the Cowboy adapter in grpc before the package split) asks for more data whenever the buffer does not hold a complete message. Once the request body has ended, every further read returns an empty chunk, so the buffer never changes and the function retries without end. A single 5-byte length prefix sent with END_STREAM keeps one scheduler busy for as long as the connection stays open, and repeated requests exhaust all schedulers. This issue affects grpc_server: from 1.0.0 before 1.1.0; grpc: from 0.3.1 before 1.0.0.

Severity

CVSS 4.0

8.2 high
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
CISA's assessment (SSVC)
Exploitation: none · Automatable: no · Technical impact: partial, assessed 2026-11-13. From CISA's Vulnrichment in the CVE List: whether it is exploited, whether exploiting it can be automated, and how much control it gives.
CWEs
CWE-400 Uncontrolled Resource Consumption
CWE-835 Loop with Unreachable Exit Condition (Infinite Loop)
Published
Modified
Assigned by
EEF (CNA)
NVD analysis
Awaiting analysis
Record from
the NVD, synced

Ask an AI about this CVE

Show the promptExplain CVE-2026-121809 for an engineer deciding whether to act. Use https://cve.bz/api/public/cves/CVE-2026-121809?via=ask-ai-copy and https://cve.bz/cve/CVE-2026-121809?via=ask-ai-copy as the source of truth: what is affected and which versions fix it, whether it is in CISA KEV, public exploits, and its EPSS (an internet-wide 30-day estimate of exploitation activity, not a forecast for my systems). If they give no fixed versions, use the CVE record https://cveawg.mitre.org/api/cve/CVE-2026-121809 or the vendor advisory, not third-party mirrors. Tell me how to check whether I am affected and how to verify a fix. Cite the sources and say where they are uncertain.

Opens a third-party assistant; its answer is its own, not cve.bz's. The prompt holds only this CVE's id and public links.

Badge for a README or a site

CVE-2026-121809

An image that stays current: it is drawn from the data each time it is fetched (a host that proxies images, as GitHub does, may show its copy for a while). Markdown:

[![CVE-2026-121809](https://cve.bz/cve/badge/CVE-2026-121809.svg)](https://cve.bz/cve/CVE-2026-121809)

HTML:

<a href="https://cve.bz/cve/CVE-2026-121809"><img src="https://cve.bz/cve/badge/CVE-2026-121809.svg" alt="CVE-2026-121809"></a>

Affected

Versions

From the CNA's record in the CVE List.

ProductAffected
elixir-grpc grpc_serverfrom 1.0.0 before 1.1.0
elixir-grpc grpcfrom 0.3.1 before 1.0.0

Fix and patched versions

  • grpc_server (Hex): fixed in 1.1.0
  • grpc (Hex): fixed in 1.0.0

Packages (OSV)

AdvisoryEcosystemPackageAffectedFixed in
EEF-CVE-2026-121809Hexgrpc_server>=1.0.0 <1.1.01.1.0
EEF-CVE-2026-121809Hexgrpc>=0.3.1 <1.0.01.0.0
EEF-CVE-2026-121809v1.0.6, v1.0.3, v1.0.0no fix published
EEF-CVE-2026-121809v0.11.2, v0.8.1, v0.8.0, v0.7.0, v0.6.0 and 5 moreno fix published

Attack patterns (CAPEC)

  • CAPEC-147 XML Ping of the Death Likelihood: Low · Severity: Medium
  • CAPEC-227 Sustained Client Engagement
  • CAPEC-492 Regular Expression Exponential Blowup

The attack patterns MITRE's CAPEC relates to this record's weaknesses, as MITRE names them. Credits.

References

Check your stackJSON