In Puma before versions 3.12.2 and 4.3.1, a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. If more keepalive connections to Puma are opened than there are threads available, additional connections will wait permanently if the attacker sends requests frequently enough. This vulnerability is patched in Puma 4.3.1 and 3.12.2.
Advisories
Source ID Title
Debian DLA Debian DLA DLA-3023-1 puma security update
EUVD EUVD EUVD-2019-0786 In Puma before versions 3.12.2 and 4.3.1, a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. If more keepalive connections to Puma are opened than there are threads available, additional connections will wait permanently if the attacker sends requests frequently enough. This vulnerability is patched in Puma 4.3.1 and 3.12.2.
Github GHSA Github GHSA GHSA-7xx3-m584-x994 A poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack
Fixes

Solution

No solution given by the vendor.


Workaround

Reverse proxies in front of Puma could be configured to always allow less than X keepalive connections to a Puma cluster or process, where X is the number of threads configured in Puma's thread pool.

History

Sun, 13 Jul 2025 13:45:00 +0000

Type Values Removed Values Added
Metrics epss

{'score': 0.00355}

epss

{'score': 0.00363}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2024-08-05T01:24:48.578Z

Reserved: 2019-09-24T00:00:00

Link: CVE-2019-16770

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Modified

Published: 2019-12-05T20:15:10.093

Modified: 2024-11-21T04:31:09.323

Link: CVE-2019-16770

cve-icon Redhat

Severity : Moderate

Publid Date: 2019-12-05T00:00:00Z

Links: CVE-2019-16770 - Bugzilla

cve-icon OpenCVE Enrichment

No data.