Show plain JSON{"id": "CVE-2025-46727", "cveTags": [], "metrics": {"cvssMetricV31": [{"type": "Secondary", "source": "security-advisories@github.com", "cvssData": {"scope": "UNCHANGED", "version": "3.1", "baseScore": 7.5, "attackVector": "NETWORK", "baseSeverity": "HIGH", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "integrityImpact": "NONE", "userInteraction": "NONE", "attackComplexity": "LOW", "availabilityImpact": "HIGH", "privilegesRequired": "NONE", "confidentialityImpact": "NONE"}, "impactScore": 3.6, "exploitabilityScore": 3.9}]}, "published": "2025-05-07T23:15:54.267", "references": [{"url": "https://github.com/rack/rack/commit/2bb5263b464b65ba4b648996a579dbd180d2b712", "source": "security-advisories@github.com"}, {"url": "https://github.com/rack/rack/commit/3f5a4249118d09d199fe480466c8c6717e43b6e3", "source": "security-advisories@github.com"}, {"url": "https://github.com/rack/rack/commit/cd6b70a1f2a1016b73dc906f924869f4902c2d74", "source": "security-advisories@github.com"}, {"url": "https://github.com/rack/rack/security/advisories/GHSA-gjh7-p2fx-99vx", "source": "security-advisories@github.com"}], "vulnStatus": "Awaiting Analysis", "weaknesses": [{"type": "Primary", "source": "security-advisories@github.com", "description": [{"lang": "en", "value": "CWE-400"}, {"lang": "en", "value": "CWE-770"}]}], "descriptions": [{"lang": "en", "value": "Rack is a modular Ruby web server interface. Prior to versions 2.2.14, 3.0.16, and 3.1.14, `Rack::QueryParser` parses query strings and `application/x-www-form-urlencoded` bodies into Ruby data structures without imposing any limit on the number of parameters, allowing attackers to send requests with extremely large numbers of parameters. The vulnerability arises because `Rack::QueryParser` iterates over each `&`-separated key-value pair and adds it to a Hash without enforcing an upper bound on the total number of parameters. This allows an attacker to send a single request containing hundreds of thousands (or more) of parameters, which consumes excessive memory and CPU during parsing. An attacker can trigger denial of service by sending specifically crafted HTTP requests, which can cause memory exhaustion or pin CPU resources, stalling or crashing the Rack server. This results in full service disruption until the affected worker is restarted. Versions 2.2.14, 3.0.16, and 3.1.14 fix the issue. Some other mitigations are available. One may use middleware to enforce a maximum query string size or parameter count, or employ a reverse proxy (such as Nginx) to limit request sizes and reject oversized query strings or bodies. Limiting request body sizes and query string lengths at the web server or CDN level is an effective mitigation."}, {"lang": "es", "value": "Rack es una interfaz modular de servidor web Ruby. En versiones anteriores a la 2.2.14, la 3.0.16 y la 3.1.14, `Rack::QueryParser` analiza cadenas de consulta y cuerpos `application/x-www-form-urlencoded` en estructuras de datos Ruby sin imponer ning\u00fan l\u00edmite en el n\u00famero de par\u00e1metros, lo que permite a los atacantes enviar solicitudes con una cantidad extremadamente grande de par\u00e1metros. La vulnerabilidad surge porque `Rack::QueryParser` itera sobre cada par clave-valor separado por `&` y lo a\u00f1ade a un hash sin imponer un l\u00edmite superior en el n\u00famero total de par\u00e1metros. Esto permite a un atacante enviar una sola solicitud con cientos de miles (o m\u00e1s) de par\u00e1metros, lo que consume demasiada memoria y CPU durante el an\u00e1lisis. Un atacante puede provocar una denegaci\u00f3n de servicio enviando solicitudes HTTP manipuladas espec\u00edficamente, lo que puede causar el agotamiento de la memoria o la sobrecarga de recursos de la CPU, bloqueando o bloqueando el servidor Rack. Esto provoca una interrupci\u00f3n total del servicio hasta que se reinicia el trabajador afectado. Las versiones 2.2.14, 3.0.16 y 3.1.14 solucionan el problema. Existen otras mitigaciones. Se puede usar middleware para imponer un tama\u00f1o m\u00e1ximo de cadena de consulta o un n\u00famero m\u00e1ximo de par\u00e1metros, o emplear un proxy inverso (como Nginx) para limitar el tama\u00f1o de las solicitudes y rechazar cadenas o cuerpos de consulta demasiado grandes. Limitar el tama\u00f1o del cuerpo de la solicitud y la longitud de las cadenas de consulta a nivel de servidor web o CDN es una mitigaci\u00f3n eficaz."}], "lastModified": "2025-05-08T14:39:09.683", "sourceIdentifier": "security-advisories@github.com"}