CVE-2025-61919
Full vulnerability record from the local CVENow database.
Description
Rack is a modular Ruby web server interface. Prior to versions 2.2.20, 3.1.18, and 3.2.3, `Rack::Request#POST` reads the entire request body into memory for `Content-Type: application/x-www-form-urlencoded`, calling `rack.input.read(nil)` without enforcing a length or cap. Large request bodies can therefore be buffered completely into process memory before parsing, leading to denial of service (DoS) through memory exhaustion. Users should upgrade to Rack version 2.2.20, 3.1.18, or 3.2.3, anu of which enforces form parameter limits using `query_parser.bytesize_limit`, preventing unbounded reads of `application/x-www-form-urlencoded` bodies. Additionally, enforce strict maximum body size at the proxy or web server layer (e.g., Nginx `client_max_body_size`, Apache `LimitRequestBody`).
View original CVE JSON
{
"id": "CVE-2025-61919",
"sourceIdentifier": "[email protected]",
"published": "2025-10-10T20:15:37.730",
"lastModified": "2026-10-19T16:10:00.260",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Rack is a modular Ruby web server interface. Prior to versions 2.2.20, 3.1.18, and 3.2.3, `Rack::Request#POST` reads the entire request body into memory for `Content-Type: application/x-www-form-urlencoded`, calling `rack.input.read(nil)` without enforcing a length or cap. Large request bodies can therefore be buffered completely into process memory before parsing, leading to denial of service (DoS) through memory exhaustion. Users should upgrade to Rack version 2.2.20, 3.1.18, or 3.2.3, anu of which enforces form parameter limits using `query_parser.bytesize_limit`, preventing unbounded reads of `application/x-www-form-urlencoded` bodies. Additionally, enforce strict maximum body size at the proxy or web server layer (e.g., Nginx `client_max_body_size`, Apache `LimitRequestBody`)."
},
{
"lang": "es",
"value": "Rack es una interfaz modular de servidor web Ruby. Antes de las versiones 2.2.20, 3.1.18 y 3.2.3, 'Rack::Request#POST' lee el cuerpo completo de la solicitud en la memoria para 'Content-Type: application/x-www-form-urlencoded', llamando a 'rack.input.read(nil)' sin aplicar una longitud o límite. Los cuerpos de solicitud grandes pueden, por lo tanto, ser almacenados en búfer completamente en la memoria del proceso antes del análisis, lo que lleva a una denegación de servicio (DoS) por agotamiento de memoria. Los usuarios deben actualizar a la versión de Rack 2.2.20, 3.1.18 o 3.2.3, cualquiera de las cuales aplica límites de parámetros de formulario usando 'query_parser.bytesize_limit', evitando lecturas ilimitadas de cuerpos 'application/x-www-form-urlencoded'. Además, aplique un tamaño máximo estricto del cuerpo en la capa del proxy o del servidor web (por ejemplo, Nginx 'client_max_body_size', Apache 'LimitRequestBody')."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "rack",
"product": "rack",
"versions": [
{
"version": "< 2.2.20",
"status": "affected"
},
{
"version": ">= 3.0, < 3.1.18",
"status": "affected"
},
{
"version": ">= 3.2, < 3.2.3",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 3.6
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2025-10-10T20:48:10.264464Z",
"id": "CVE-2025-61919",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-400"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"versionEndExcluding": "2.2.20",
"matchCriteriaId": "2077D030-4BE1-4CB4-8C9B-ACCA0B01BB0D"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"versionStartIncluding": "3.0.0",
"versionEndExcluding": "3.1.18",
"matchCriteriaId": "52554FFF-7EF2-473A-8686-6D029CC8F6EF"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"versionStartIncluding": "3.2.0",
"versionEndExcluding": "3.2.3",
"matchCriteriaId": "AA3F6ADB-DBDD-4C26-A019-D5AE5961F3CC"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/rack/rack/commit/4e2c903991a790ee211a3021808ff4fd6fe82881",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/rack/rack/commit/cbd541e8a3d0c5830a3c9a30d3718ce2e124f9db",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/rack/rack/commit/e179614c4a653283286f5f046428cbb85f21146f",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/rack/rack/security/advisories/GHSA-6xw4-3v39-52mm",
"source": "[email protected]",
"tags": [
"Mitigation",
"Third Party Advisory"
]
}
]
}