
Cloud Vulnerability DB
A community-led vulnerabilities database
The make_graphql_filter() and make_graphql_filter_sync() filters of juniper_warp read the whole body of a POST request into memory before they parse the body. The filters 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. Bodies of all content types were affected.
juniper_warp 0.9.1 reads at most 2 MiB of a request body by default. The filters respond with 413 Payload Too Large to larger bodies. The filters stop reading a body as soon as the body exceeds the limit. make_graphql_filter_with_body_limit() and make_graphql_filter_sync_with_body_limit() set another limit.
Put warp::body::content_length_limit() in front of the filter for requests other than GET. The content_length_limit() filter rejects requests with a large Content-Length header and requests without the header. GET requests carry the query in the URL and have no body.
let body_limit = warp::get()
.or(warp::body::content_length_limit(2 * 1024 * 1024))
.unify();
let graphql = warp::path("graphql")
.and(body_limit)
.and(juniper_warp::make_graphql_filter(schema, context_extractor));juniper_warp 0.9.1juniper_hyper.Source: NVD
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."