GitHub Advisoryadvisory · RubyGems
GHSA-98m9-hrrm-r99r Faraday: Uncontrolled recursion in NestedParamsEncoder allows stack exhaustion DoS via deeply nested query parameters
HIGH
Official page ↗
- Aliases
- CVE-2026-54297
- Ecosystem
- RubyGems
- Packages
- faraday
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-674
- Reviewed
- 2026-06-19
Affected packages
• RubyGems faraday: >= 2.0.0, < 2.14.3 → fixed in 2.14.3
• RubyGems faraday: >= 1.0.0, < 1.10.6 → fixed in 1.10.6
Description
`Faraday::NestedParamsEncoder`, the default nested query parameter encoder/decoder in Faraday, decodes nested query strings without enforcing a maximum nesting depth.
A crafted query string such as:
```text
a[x][x][x][x]...[x]=1
```
causes Faraday to build a deeply nested Ruby `Hash` structure. The internal `dehash` routine then recursively walks this attacker-controlled structure without a depth limit. At sufficient depth, Ruby raises an uncaught `SystemStackError` (`stack level too deep`), crashing the calling thread or worker. This can lead to denial of service in applications that pass attacker-controlled query strings to Faraday's nested query parsing or URL-building paths.
This has been patched in version 2.14.3 and backported to 1.10.6.
Related
Alias · CVE (1)
- CVE-2026-54297 Faraday is an HTTP client library abstraction layer that provides a common interface over many adapters. vulnerability
Weakness · CWE (1)
- CWE-674 Uncontrolled Recursion weakness
References
- https://github.com/lostisland/faraday/security/advisories/GHSA-98m9-hrrm-r99r web
- https://nvd.nist.gov/vuln/detail/CVE-2026-54297 advisory
- https://github.com/lostisland/faraday/pull/1681 web
- https://github.com/lostisland/faraday package
- https://github.com/lostisland/faraday/releases/tag/v1.10.6 web
- https://github.com/lostisland/faraday/releases/tag/v2.14.3 web