HTTP Request/Response Smuggling in puma
Puma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-21647
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 03:05 UTC · Revision 1
Source evidence
Puma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.
osv:CVE-2024-21647
Complete source record
{
"id": "9160b2f2ca79d6f9aecf03f2a90ef108b6c3553217615e5d7b3f07b00c0350b0",
"url": "https://osv.dev/vulnerability/CVE-2024-21647",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "HTTP Request/Response Smuggling in puma",
"summary": "Puma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.",
"evidence": "osv:CVE-2024-21647",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2024-21647",
"aliases": [
"CVE-2024-21647",
"GHSA-c2f4-cvqm-65w2"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/puma/puma",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "129357322e837e7d99c25c9cd71d36ecb4f9540b"
},
{
"introduced": "32d999708d7019b85b0518c8e0693773b0bd4ff4"
},
{
"fixed": "5fc43d73b6ff193325e657a24ed76dec79133e93"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "5.6.8"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*",
"range": [
{
"introduced": "6.0.0"
},
{
"fixed": "6.4.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "5fc43d73b6ff193325e657a24ed76dec79133e93"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v5.6.7",
"v6.4.1",
"v6.4.0",
"v5.6.6",
"v6.3.0",
"v6.2.2",
"v6.2.1",
"v6.2.0",
"v6.1.0",
"v6.0.2",
"v6.0.1",
"v6.0.0",
"v5.6.5",
"v5.6.4",
"v5.6.2",
"v5.6.1",
"v5.6.0",
"v5.5.2",
"v5.5.1",
"v5.5.0",
"v5.4.0",
"v5.3.2",
"v5.3.1",
"v5.3.0",
"v5.2.2",
"v5.2.1",
"v5.2.0",
"v5.1.0",
"v5.0.3",
"v5.0.2",
"v5.0.1",
"v5.0.0",
"v5.0.0.beta2",
"v5.0.0.beta1",
"v4.3.0",
"v4.2.1",
"v4.2.0",
"v4.1.0",
"v4.0.1",
"v4.0.0",
"v3.12.0",
"v3.11.4",
"v3.11.3",
"v3.11.2",
"v3.11.1",
"v3.11.0",
"v3.10.0",
"v3.9.1",
"v3.9.0",
"v3.8.0",
"v3.7.1",
"v3.6.0",
"v3.5.2",
"v3.5.1",
"v3.5.0",
"v3.4.0",
"v3.3.0",
"v3.2.0",
"v3.1.1",
"v3.1.0",
"v3.0.2",
"v3.0.1",
"v3.0.0",
"v3.0.0.rc1",
"v2.16.0",
"v2.15.3",
"v2.15.2",
"v2.15.1",
"v2.15.0",
"v2.14.0",
"v2.13.4",
"v2.13.3",
"v2.13.2",
"v2.13.1",
"v2.13.0",
"v2.12.3",
"v2.12.2",
"v2.12.1",
"v2.12.0",
"v2.11.3",
"v2.11.2",
"v2.11.0",
"v2.10.2",
"v2.10.1",
"v2.10.0",
"v2.9.2",
"v2.9.1",
"v2.9.0",
"v2.8.2",
"v2.8.1",
"v2.7.1",
"v2.7.0",
"v2.6.0",
"v2.5.1",
"v2.5.0",
"v2.4.1",
"v2.4.0",
"v2.3.2",
"v2.3.1",
"v2.3.0",
"v2.2.2",
"v2.2.1",
"v2.2.0",
"v2.1.1",
"v2.1.0",
"v2.0.1",
"v2.0.0",
"v2.0.0.b7",
"v2.0.0.b6",
"v2.0.0.b5",
"v2.0.0.b4",
"v2.0.0.b3",
"v2.0.0.b2",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.1",
"v1.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-21647.json"
}
}
],
"modified": "2026-10-28T02:30:53.530002774Z",
"provider": "osv",
"references": [
"https://lists.debian.org/debian-lts-announce/2024/11/msg00004.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/21xxx/CVE-2024-21647.json",
"https://github.com/puma/puma/security/advisories/GHSA-c2f4-cvqm-65w2",
"https://nvd.nist.gov/vuln/detail/CVE-2024-21647",
"https://github.com/puma/puma/commit/5fc43d73b6ff193325e657a24ed76dec79133e93"
],
"provider_metadata": {
"cwe_ids": [
"CWE-444"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/21xxx/CVE-2024-21647.json"
}
},
"related_cves": [
{
"value": "CVE-2024-21647",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 522058,
"published_at": "2024-01-08T13:45:27.51+00:00"
}