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.
Advisories
Source ID Title
Debian DLA Debian DLA DLA-3083-1 puma security update
EUVD EUVD EUVD-2021-1158 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.
Github GHSA Github GHSA GHSA-q28m-8xjw-8vr5 Puma's Keepalive Connections Causing Denial Of Service
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

No history.

Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2024-08-03T22:11:05.438Z

Reserved: 2021-03-30T00:00:00

Link: CVE-2021-29509

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Modified

Published: 2021-05-11T17:15:07.627

Modified: 2024-11-21T06:01:16.570

Link: CVE-2021-29509

cve-icon Redhat

Severity : Moderate

Publid Date: 2021-05-11T00:00:00Z

Links: CVE-2021-29509 - Bugzilla

cve-icon OpenCVE Enrichment

No data.

Weaknesses