CPU exhaustion via a truncated gRPC message on streaming RPCs in elixir-grpc grpc_server
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| elixir-grpc | grpc_server | unaffected |
|
||||||
| elixir-grpc | grpc_server | unaffected |
|
||||||
| elixir-grpc | grpc | unaffected |
|
||||||
| elixir-grpc | grpc | unaffected |
|
No data.
No data.
No data available yet.
No CVSS v3.1
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
No EPSS score available.
Key SSVC decision points have not yet been added.
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | CPU exhaustion via a truncated gRPC message on streaming RPCs in elixir-grpc grpc_server | |
| First Time appeared |
Elixir-grpc
Elixir-grpc grpc Elixir-grpc grpc Server |
|
| Weaknesses | CWE-400 CWE-835 |
|
| CPEs | cpe:2.3:a:elixir-grpc:grpc:*:*:*:*:*:*:*:* cpe:2.3:a:elixir-grpc:grpc_server:*:*:*:*:*:*:*:* |
|
| Vendors & Products |
Elixir-grpc
Elixir-grpc grpc Elixir-grpc grpc Server |
|
| References |
|
|
| Metrics |
cvssV4_0
|