RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0417

Excessive CPU and memory use on crafted GraphQL documents

Reported
Issued
Package
juniper (crates.io)
Type
Vulnerability
Categories
Keywords
#graphql #validation #fragments #complexity
Aliases
References
CVSS Score
7.5 HIGH
CVSS Details
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality Impact
None
Integrity Impact
None
Availability Impact
High
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Patched
  • >=0.17.2

Description

Several parts of juniper did work that grew faster than the size of the GraphQL document. A small document could thus use seconds of CPU time or gigabytes of memory. The requests need no authentication.

juniper 0.17.2 fixes the issues. The parser rejects documents with more than 15,000 tokens and operations with more than 15,000 fields after the expansion of fragments. The validation rules visit each fragment once. OverlappingFieldsCanBeMerged stops after 100,000 field comparisons and reports at most 100 conflicts. RootNode::limit_tokens() and RootNode::limit_fields() change the limits.

Advisory available under CC0-1.0 license.