Vulnerability Details CVE-2021-29509
Puma is a concurrent HTTP 1.1 server for Ruby/Rack applications. The fix for CVE-2019-16770 was incomplete. The original fix only protected existing connections that had already been accepted from having their requests starved by greedy persistent-connections saturating all threads in the same process. However, new connections may still be starved by greedy persistent-connections saturating all threads in all processes in the cluster. A `puma` server which received more concurrent `keep-alive` connections than the server had threads in its threadpool would service only a subset of connections, denying service to the unserved connections. This problem has been fixed in `puma` 4.3.8 and 5.3.1. Setting `queue_requests false` also fixes the issue. This is not advised when using `puma` without a reverse proxy, such as `nginx` or `apache`, because you will open yourself to slow client attacks (e.g. slowloris). The fix is very small and a git patch is available for those using unsupported versions of Puma.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.002
EPSS Ranking 38.5%
CVSS Severity
CVSS v3 Score 7.5
CVSS v2 Score 5.0
Products affected by CVE-2021-29509
-
-
cpe:2.3:a:puma:puma:1.0.0
-
cpe:2.3:a:puma:puma:1.1.0
-
cpe:2.3:a:puma:puma:1.1.1
-
cpe:2.3:a:puma:puma:1.2.0
-
cpe:2.3:a:puma:puma:1.2.1
-
cpe:2.3:a:puma:puma:1.2.2
-
cpe:2.3:a:puma:puma:1.3.0
-
cpe:2.3:a:puma:puma:1.3.1
-
cpe:2.3:a:puma:puma:1.4.0
-
cpe:2.3:a:puma:puma:1.5.0
-
cpe:2.3:a:puma:puma:1.6.2
-
cpe:2.3:a:puma:puma:2.0.0
-
cpe:2.3:a:puma:puma:2.0.1
-
cpe:2.3:a:puma:puma:2.1.0
-
cpe:2.3:a:puma:puma:2.1.1
-
cpe:2.3:a:puma:puma:2.10.0
-
cpe:2.3:a:puma:puma:2.10.1
-
cpe:2.3:a:puma:puma:2.10.2
-
cpe:2.3:a:puma:puma:2.11.0
-
cpe:2.3:a:puma:puma:2.11.2
-
cpe:2.3:a:puma:puma:2.11.3
-
cpe:2.3:a:puma:puma:2.12.0
-
cpe:2.3:a:puma:puma:2.12.1
-
cpe:2.3:a:puma:puma:2.12.2
-
cpe:2.3:a:puma:puma:2.12.3
-
cpe:2.3:a:puma:puma:2.13.0
-
cpe:2.3:a:puma:puma:2.13.1
-
cpe:2.3:a:puma:puma:2.13.2
-
cpe:2.3:a:puma:puma:2.13.3
-
cpe:2.3:a:puma:puma:2.13.4
-
cpe:2.3:a:puma:puma:2.14.0
-
cpe:2.3:a:puma:puma:2.15.0
-
cpe:2.3:a:puma:puma:2.15.1
-
cpe:2.3:a:puma:puma:2.15.2
-
cpe:2.3:a:puma:puma:2.15.3
-
cpe:2.3:a:puma:puma:2.16.0
-
cpe:2.3:a:puma:puma:2.2.0
-
cpe:2.3:a:puma:puma:2.2.1
-
cpe:2.3:a:puma:puma:2.2.2
-
cpe:2.3:a:puma:puma:2.3.0
-
cpe:2.3:a:puma:puma:2.3.1
-
cpe:2.3:a:puma:puma:2.3.2
-
cpe:2.3:a:puma:puma:2.4.0
-
cpe:2.3:a:puma:puma:2.4.1
-
cpe:2.3:a:puma:puma:2.5.0
-
cpe:2.3:a:puma:puma:2.5.1
-
cpe:2.3:a:puma:puma:2.6.0
-
cpe:2.3:a:puma:puma:2.7.0
-
cpe:2.3:a:puma:puma:2.7.1
-
cpe:2.3:a:puma:puma:2.8.0
-
cpe:2.3:a:puma:puma:2.8.1
-
cpe:2.3:a:puma:puma:2.8.2
-
cpe:2.3:a:puma:puma:2.9.0
-
cpe:2.3:a:puma:puma:2.9.1
-
cpe:2.3:a:puma:puma:2.9.2
-
cpe:2.3:a:puma:puma:3.0.0
-
cpe:2.3:a:puma:puma:3.0.1
-
cpe:2.3:a:puma:puma:3.0.2
-
cpe:2.3:a:puma:puma:3.1.0
-
cpe:2.3:a:puma:puma:3.1.1
-
cpe:2.3:a:puma:puma:3.10.0
-
cpe:2.3:a:puma:puma:3.11.0
-
cpe:2.3:a:puma:puma:3.11.1
-
cpe:2.3:a:puma:puma:3.11.2
-
cpe:2.3:a:puma:puma:3.11.3
-
cpe:2.3:a:puma:puma:3.11.4
-
cpe:2.3:a:puma:puma:3.12.0
-
cpe:2.3:a:puma:puma:3.12.1
-
cpe:2.3:a:puma:puma:3.12.2
-
cpe:2.3:a:puma:puma:3.12.3
-
cpe:2.3:a:puma:puma:3.12.4
-
cpe:2.3:a:puma:puma:3.12.5
-
cpe:2.3:a:puma:puma:3.12.6
-
cpe:2.3:a:puma:puma:3.2.0
-
cpe:2.3:a:puma:puma:3.3.0
-
cpe:2.3:a:puma:puma:3.4.0
-
cpe:2.3:a:puma:puma:3.5.0
-
cpe:2.3:a:puma:puma:3.5.1
-
cpe:2.3:a:puma:puma:3.5.2
-
cpe:2.3:a:puma:puma:3.6.0
-
cpe:2.3:a:puma:puma:3.6.1
-
cpe:2.3:a:puma:puma:3.6.2
-
cpe:2.3:a:puma:puma:3.7.0
-
cpe:2.3:a:puma:puma:3.7.1
-
cpe:2.3:a:puma:puma:3.8.0
-
cpe:2.3:a:puma:puma:3.8.1
-
cpe:2.3:a:puma:puma:3.8.2
-
cpe:2.3:a:puma:puma:3.9.0
-
cpe:2.3:a:puma:puma:3.9.1
-
cpe:2.3:a:puma:puma:4.0.0
-
cpe:2.3:a:puma:puma:4.0.1
-
cpe:2.3:a:puma:puma:4.1.0
-
cpe:2.3:a:puma:puma:4.1.1
-
cpe:2.3:a:puma:puma:4.2.0
-
cpe:2.3:a:puma:puma:4.2.1
-
cpe:2.3:a:puma:puma:4.3.0
-
cpe:2.3:a:puma:puma:4.3.1
-
cpe:2.3:a:puma:puma:4.3.2
-
cpe:2.3:a:puma:puma:4.3.3
-
cpe:2.3:a:puma:puma:4.3.4
-
cpe:2.3:a:puma:puma:4.3.5
-
cpe:2.3:a:puma:puma:4.3.6
-
cpe:2.3:a:puma:puma:4.3.7
-
cpe:2.3:a:puma:puma:5.0.0
-
cpe:2.3:a:puma:puma:5.0.1
-
cpe:2.3:a:puma:puma:5.0.2
-
cpe:2.3:a:puma:puma:5.0.3
-
cpe:2.3:a:puma:puma:5.0.4
-
cpe:2.3:a:puma:puma:5.1.0
-
cpe:2.3:a:puma:puma:5.1.1
-
cpe:2.3:a:puma:puma:5.2.0
-
cpe:2.3:a:puma:puma:5.2.1
-
cpe:2.3:a:puma:puma:5.2.2
-
cpe:2.3:a:puma:puma:5.3.0
-
cpe:2.3:o:debian:debian_linux:10.0