CVE-2026-26961
Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Multipart::Parser extracts the boundary parameter from multipart/form-data using a greedy regular expression. When a Content-Type header contains multiple boundary parameters, Rack selects the last one rather than the first. In deployments where an upstream proxy, WAF, or intermediary interprets the first boundary parameter, this mismatch can allow an attacker to smuggle multipart content past upstream inspection and have Rack parse a different body structure than the intermediary validated. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
- Puntuación base: 5.3
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.27%
- Percentil entre todas las CVEs puntuadas: 18
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
CWE
- CWE-436
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-26961",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-26961",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-04-03T17:57:50.290547Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 3.7,
"attackVector": "NETWORK",
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 1.4,
"exploitabilityScore": 2.2
},
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 5.3,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 1.4,
"exploitabilityScore": 3.9
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "rack",
"product": "rack",
"versions": [
{
"status": "affected",
"version": "< 2.2.23"
},
{
"status": "affected",
"version": ">= 3.0.0.beta1, < 3.1.21"
},
{
"status": "affected",
"version": ">= 3.2.0, < 3.2.6"
}
]
}
]
}
],
"published": "2026-04-02T17:16:21.973",
"references": [
{
"url": "https://github.com/rack/rack/security/advisories/GHSA-vgpv-f759-9wx3",
"tags": [
"Vendor Advisory"
],
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-436"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Multipart::Parser extracts the boundary parameter from multipart/form-data using a greedy regular expression. When a Content-Type header contains multiple boundary parameters, Rack selects the last one rather than the first. In deployments where an upstream proxy, WAF, or intermediary interprets the first boundary parameter, this mismatch can allow an attacker to smuggle multipart content past upstream inspection and have Rack parse a different body structure than the intermediary validated. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6."
},
{
"lang": "es",
"value": "Rack es una interfaz modular de servidor web Ruby. Antes de las versiones 2.2.23, 3.1.21 y 3.2.6, Rack::Multipart::Parser extrae el parámetro boundary de multipart/form-data utilizando una expresión regular voraz. Cuando un encabezado Content-Type contiene múltiples parámetros boundary, Rack selecciona el último en lugar del primero. En implementaciones donde un proxy ascendente, WAF o intermediario interpreta el primer parámetro boundary, esta discrepancia puede permitir a un atacante contrabandear contenido multipart más allá de la inspección ascendente y hacer que Rack analice una estructura de cuerpo diferente de la que el intermediario validó. Este problema ha sido parcheado en las versiones 2.2.23, 3.1.21 y 3.2.6."
}
],
"lastModified": "2026-07-24T21:10:00.143",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"vulnerable": true,
"matchCriteriaId": "AD5DE7DE-3A8B-4064-A7D5-1E117A101E81",
"versionEndExcluding": "2.2.23"
},
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"vulnerable": true,
"matchCriteriaId": "6948AAA6-873D-46BA-AA22-4C81138128E1",
"versionEndExcluding": "3.1.21",
"versionStartIncluding": "3.0.0"
},
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"vulnerable": true,
"matchCriteriaId": "3FB592AD-E826-49BE-AC6D-E5F55FDCC96E",
"versionEndExcluding": "3.2.6",
"versionStartIncluding": "3.2.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}