CVE-2022-31173 Juniper is vulnerable to @DOS GraphQL Nested Fragments overflow

High 7.5 Published Updated

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.

Weakness: CWE-674, CWE-400

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.

PackageAffectedFixed in
juniper crates.ioAll versions0.15.10
juniper crates.ioAll versions0.15.10
juniper crates.ioFrom 0.0.0-00.15.10
async-graphql crates.ioAll versions4.0.6
async-graphql crates.ioAll versions4.0.6
async-graphql crates.ioFrom 0.0.0-04.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.

Is CVE-2022-31173 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free