CVE-2025-59830
Ruby vulnerability analysis and mitigation

Overview

Rack, a modular Ruby web server interface, contains a high-severity vulnerability (CVE-2025-59830) discovered in versions prior to 2.2.18. The vulnerability lies in Rack::QueryParser's parameter handling mechanism, where it enforces params_limit only for parameters separated by '&' while still splitting on both '&' and ';' characters. This implementation flaw allows attackers to bypass the parameter count limit by using semicolon separators, potentially leading to increased resource consumption (GitHub Advisory).

Technical details

The vulnerability exists in the Rack::QueryParser#checkquerystring function, where it counts only '&' characters when determining the number of parameters, while the default separator regex DEFAULT_SEP = /[&;] */n splits on both '&' and ';'. This mismatch allows queries using semicolon separators to bypass the parameter count limit. The vulnerability has been assigned a CVSS v3.1 base score of 7.5 (High) with the vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, indicating network accessibility with no required privileges or user interaction (GitHub Advisory, NVD).

Impact

Applications or middleware that directly invoke Rack::QueryParser with its default configuration (no explicit delimiter) are exposed to increased CPU and memory consumption, which can be exploited as a limited denial-of-service vector. However, Rack::Request, the primary entry point for typical Rack applications, uses QueryParser in a safe way and is not vulnerable by default. The impact is primarily limited to edge cases where QueryParser is used directly (GitHub Advisory).

Mitigation and workarounds

The primary mitigation is to upgrade to Rack version 2.2.18 or later, where both '&' and ';' are counted consistently toward params_limit. For systems unable to upgrade immediately, a workaround is to configure QueryParser with an explicit delimiter (e.g., '&') to avoid the mismatch. Additionally, it's recommended to enforce query string and request size limits at the web server or proxy layer (e.g., Nginx, Apache, or a CDN) to mitigate excessive parsing overhead (GitHub Advisory, Miggo).

Additional resources


SourceThis report was generated using AI

Related Ruby vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-66568CRITICAL9.3
  • RubyRuby
  • ruby-saml
NoYesDec 09, 2025
CVE-2025-66567CRITICAL9.3
  • RubyRuby
  • ruby-saml
NoYesDec 09, 2025
GHSA-4249-gjr8-jpq3HIGH8.7
  • RubyRuby
  • prosemirror_to_html
NoYesNov 13, 2025
CVE-2025-68113MEDIUM6.5
  • JavaScriptJavaScript
  • altcha-org/altcha
NoYesDec 16, 2025
CVE-2025-61594MEDIUMN/A
  • RubyRuby
  • ruby-doc
NoYesDec 11, 2025

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management