CVE-2022-31173 Juniper is vulnerable to @DOS GraphQL Nested Fragments overflow
Attackers can crash the application by sending deeply nested GraphQL fragments, causing a denial of service in the Juniper library.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2022-31173?
CVE-2022-31173 is a high-severity denial of service vulnerability in graphql-rust juniper, published on 1 Aug 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Juniper is a GraphQL server library for Rust. Affected versions of Juniper are vulnerable to uncontrolled recursion resulting in a program crash. This issue has been addressed in version 0.15.10. Users are advised to upgrade. Users unable to upgrade should limit the recursion depth manually.
Which versions are affected by CVE-2022-31173?
6 open source packages ship an affected version, including juniper and async-graphql. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
juniper crates.io | All versions | 0.15.10 |
juniper crates.io | All versions | 0.15.10 |
juniper crates.io | From 0.0.0-0 | 0.15.10 |
async-graphql crates.io | All versions | 4.0.6 |
async-graphql crates.io | All versions | 4.0.6 |
async-graphql crates.io | From 0.0.0-0 | 4.0.6 |
Products include Juniper Project Juniper.
How do I fix CVE-2022-31173?
Upgrade juniper to 0.15.10 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2022-31173 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2022-31173 exists.
Sources
Also known as GHSA-4rx6-g5vg-5f3j, GHSA-xq3c-8gqm-v648, RUSTSEC-2022-0037, RUSTSEC-2022-0038.