GHSA-36rq-8957-mjrx: Excessive CPU and memory use on crafted GraphQL documents

Published Oct 28, 2026
·
Updated

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::limittokens() and RootNode::limitfields() change the limits.

Affected Software

1 affected componentFixes available
rust/juniper>=0.0.0-0<0.17.2
0.17.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade rust/juniper to a version that resolves this vulnerability.

    Fixed in 0.17.2
  2. Upgrade

    Upgrade juniper to a version that resolves this vulnerability.

    Fixed in 0.17.2
  3. Configuration

    Set the parser limit to 15,000 tokens and the operation limit to 15,000 fields after fragment expansion.

    juniper RootNode::limit_tokens() and RootNode::limit_fields() = 15,000

Event History

Oct 28, 2026
Advisory Published
via OSV·12:00 PM
Data Sourced
via OSV·12:00 PM
DescriptionSeverityAffected Software

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203