Every CVESearch/Get API key

GHSA-36rq-8957-mjrx

Excessive CPU and memory use on crafted GraphQL documents

7.5 HighFix available

GHSA-36rq-8957-mjrx is a high vulnerability (CVSS 7.5) in juniper, published October 28, 2026. No source lists public exploit code. Fixed in juniper 0.17.2.

Severity
7.5 HighCVSS 3.1, OSV
Exploit chance
UnscoredNo EPSS score yet
Exploitation
None knownNot on CISA’s or ENISA’s lists
Fixed in
0.17.2juniper

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.

  • OverlappingFieldsCanBeMerged compared all pairs of fields with the same response name. The rule also reported one error for each pair of conflicting fields.
  • NoFragmentCycles and OverlappingFieldsCanBeMerged visited a fragment again for each path that spread the fragment. Validation time thus doubled with each fragment that spread the next fragment twice.
  • Execution resolved the fields of a fragment once for each spread of the fragment. A document of 1.2 KB could expand into a billion fields.
  • The parser removed each token from the front of a vector. Parsing time thus grew with the square of the number of tokens.

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Affected packages

Affected packages
PackageAffectedFixed
juniper
crates.io
0.0.0-0 up to 0.17.2
0.17.2

What each source reports

OSV Score usedRUSTSEC-2026-04177.5

Excessive CPU and memory use on crafted GraphQL documents

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.

  • OverlappingFieldsCanBeMerged compared all pairs of fields with the same response name. The rule also reported one error for each pair of conflicting fields.
  • NoFragmentCycles and OverlappingFieldsCanBeMerged visited a fragment again for each path that spread the fragment. Validation time thus doubled with each fragment that spread the next fragment twice.
  • Execution resolved the fields of a fragment once for each spread of the fragment. A document of 1.2 KB could expand into a billion fields.
  • The parser removed each token from the front of a vector. Parsing time thus grew with the square of the number of tokens.

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.

Record
RUSTSEC-2026-0417
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

References

MoveEnter Open