Unbounded memory use on large request bodies
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 0.10.1
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The juniper_hyper library, which provides GraphQL request handling for Rust servers built on the Hyper HTTP framework, is affected. Its graphql() and graphql_sync() functions previously read entire POST request bodies into memory without any size limit, so an unauthenticated remote client could send a very large request and exhaust the server's memory, causing it to crash or become unavailable.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
The `graphql()` and `graphql_sync()` functions of `juniper_hyper` read the whole body of a POST request into memory before they parsed the body. The functions had no limit on the size of the body. A client could thus send a large body and exhaust the memory of the server. The request needs no authentication. `juniper_hyper` 0.10.1 reads at most 2 MiB of a request body by default. The functions respond with `413 Payload Too Large` to larger bodies. A `juniper_hyper::BodyLimit` in the extensions of a request changes the limit for the request.
Timeline
- Advisory published
- Record last updated
- First seen by cve.now
Affected versions
- juniper_hypercrates.io
From 0.0.0-0 · fixed in 0.10.1