CVE-2020-11077 json
HTTP Smuggling via Transfer-Encoding Header in Puma
published 6y ago modified last mo. also GHSA-w64w-qqph-5gxm , EUVD-2020-0445
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.9%
- EPSS 2.9% chance of exploitation in 30 days, percentile 86%
- public exploits
- 0
- none known
Summary
In Puma (RubyGem) before 4.3.5 and 3.12.6, a client could smuggle a request through a proxy, causing the proxy to send a response back to another unknown client. If the proxy uses persistent connections and the client adds another request in via HTTP pipelining, the proxy may mistake it as the first request's body. Puma, however, would see it as two requests, and when processing the second request, send back a response that the proxy does not expect. If the proxy has reused the persistent connection to Puma to send another request for a different client, the second response from the first client will be sent to the second client. This is a similar but different vulnerability from CVE-2020-11076. The problem has been fixed in Puma 3.12.6 and Puma 4.3.5.
Patch / fix
- rubygems puma 3.12.6, 4.3.5
- puma puma 3.12.6, 4.3.5
- puma Debian 14, Debian 13, Debian 12 4.3.6-1
debian advisories DEBIAN-CVE-2020-11077
- puma Ubuntu Pro 20.04 LTS 3.12.4-1ubuntu2+esm1
ubuntu advisories UBUNTU-CVE-2020-11077
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- rmt-server SLE Module for Server Applications 15 SP1, SLE Module for Public Cloud 15 SP1 2.6.5-3.18.1
- rmt-server SLES for SAP 15, SLES 15-LTSS, SLE High Performance Computing 15-LTSS +1 more 2.6.5-3.34.1
- rmt-server SLE Module for Server Applications 15 SP2, SLE Module for Public Cloud 15 SP2 2.6.5-3.3.1
- kibana OpenStack Cloud 7 4.6.3-5.1
- ansible OpenStack Cloud 7 2.2.3.0-12.2
- grafana OpenStack Cloud 7 4.6.5-1.14.1
- memcached OpenStack Cloud 7 1.5.17-3.6.1
- python-py OpenStack Cloud 7 1.8.1-11.12.1
suse advisories SUSE-SU-2020:3160-1SUSE-SU-2020:3147-1SUSE-SU-2020:3036-1SUSE-RU-2020:2072-1SUSE-SU-2020:2060-1SUSE-SU-2020:1919-1
- rmt-server openSUSE Leap 15.1 2.6.5-lp151.2.18.2
- rmt-server openSUSE Leap 15.2 2.6.5-lp152.2.3.1
- rubygem-puma openSUSE Leap 15.2 4.3.5-lp152.4.3.1
- rubygem-puma openSUSE Leap 15.1 4.3.5-lp151.3.3.1
opensuse advisories openSUSE-SU-2020:2000-1openSUSE-SU-2020:1993-1openSUSE-SU-2020:1001-1openSUSE-SU-2020:0990-1
Is CVE-2020-11077 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-11077 updated cvss 0.0
rubygem-puma: HTTP Smuggling through a proxy via Transfer-Encoding Header
-
Red Hat CloudForms Management Engine 5 rubygem-puma Red Hat Storage 3 rubygem-pumaaffected: workaround, no fix planned “Will not fix”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
2.88% chance of exploitation in the next 30 days, higher than 86% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 5.0 | AV:N/AC:L/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | puma | <3.12.6 >=4.0.0, <4.3.5 |
3.12.6 4.3.5 |
Affected products
- puma puma
Classification
- Weakness
-
- CWE-444 Inconsistent Interpretation of HTTP Requests
References
-
lists.opensuse.org
/opensuse-security-announce/2020-07/msg00034.html
vendor-advisory, web, mailing-list, third-party-advisory
-
lists.opensuse.org
/opensuse-security-announce/2020-07/msg00038.html
vendor-advisory, web, mailing-list, third-party-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/SKIY5H67GJIGJL6SMFWFLUQQQR3EMVPR/
vendor-advisory
-
github.com
/puma/puma/security/advisories/GHSA-w64w-qqph-5gxm
web, vendor-advisory
-
github.com
/puma/puma/blob/master/History.md#434435-and-31253126--2020-05-22
web, release-notes
-
lists.debian.org
/debian-lts-announce/2020/10/msg00009.html
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-11077
advisory
-
github.com
/puma/puma
package
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2020-11077.yml
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/SKIY5H67GJIGJL6SMFWFLUQQQR3EMVPR
web
Sources
- CVE List CVE-2020-11077
- GitHub Advisory GHSA-w64w-qqph-5gxm
- NVD CVE-2020-11077
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.