CVE-2022-31173: Juniper is vulnerable to @DOS GraphQL Nested Fragments overflow
7.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.30053%
CWE
Published
7/29/2022
Updated
7/24/2023
KEV Status
No
Technology
Rust
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| juniper | rust | < 0.15.10 | 0.15.10 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from recursive graph traversal implementations in validation rules that used stack-based recursion without depth limits. The commit diff shows replacements of recursive calls with heap-allocated stacks (Vec-based iteration), indicating the original functions were vulnerable to unbounded recursion. Key files modified include no_fragment_cycles.rs where the cycle detection was reimplemented to avoid recursion, and similar patterns in other validation rules. The POC demonstrates that ~7500 nested fragments cause crashes, matching typical stack size limitations in Rust.