- Description
- Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Files#fail sets the Content-Length response header using String#size instead of String#bytesize. When the response body contains multibyte UTF-8 characters, the declared Content-Length is smaller than the number of bytes actually sent on the wire. Because Rack::Files reflects the requested path in 404 responses, an attacker can trigger this mismatch by requesting a non-existent path containing percent-encoded UTF-8 characters. This results in incorrect HTTP response framing and may cause response desynchronization in deployments that rely on the incorrect Content-Length value. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.
- Source
- security-advisories@github.com
- NVD status
- Analyzed
- Products
- rack
CVSS 3.1
- Type
- Primary
- Base score
- 6.5
- Impact score
- 2.5
- Exploitability score
- 3.9
- Vector string
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Severity
- MEDIUM
- security-advisories@github.com
- CWE-130
- Hype score
- Not currently trending
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"matchCriteriaId": "AD5DE7DE-3A8B-4064-A7D5-1E117A101E81",
"versionEndExcluding": "2.2.23",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"matchCriteriaId": "6948AAA6-873D-46BA-AA22-4C81138128E1",
"versionEndExcluding": "3.1.21",
"versionStartIncluding": "3.0.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*",
"matchCriteriaId": "3FB592AD-E826-49BE-AC6D-E5F55FDCC96E",
"versionEndExcluding": "3.2.6",
"versionStartIncluding": "3.2.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
]