CVE-2021-29509

Source
https://nvd.nist.gov/vuln/detail/CVE-2021-29509
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-29509.json
Aliases
Related
Published
2021-05-11T17:15:07Z
Modified
2023-11-29T08:45:55.982543Z
Details

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.

References

Affected packages

Git / github.com/puma/puma

Affected ranges

Type
GIT
Repo
https://github.com/puma/puma
Events

Affected versions

v5.*

v5.0.0
v5.0.1
v5.0.2
v5.0.3
v5.1.0
v5.2.0
v5.2.1
v5.2.2
v5.3.0