Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| puma | puma | < 4.3.8, >= 5.0.0, < 5.3.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | puma | 4.3.8-1 | — |
| Debian 13 | puma | 4.3.8-1 | — |
| Debian 12 | puma | 4.3.8-1 | — |
| Debian 10 | puma | 3.12.0-2+deb10u3 | DLA-3083-1 |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Red Hat Satellite Capsule 6 | foreman | 2.5.2.17-2.el7sat | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | python-aiohttp | 3.7.4-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | python-ecdsa +1 | 0.13.3-2.el7pc | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | python-pyyaml +1 | 5.4.1-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | python-urllib3 +1 | 1.26.5-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | python3-django | 2.2.24-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | satellite +1 | 6.10.0-3.el7sat | RHSA-2021:4702 |
| Red Hat Satellite Capsule 6 | tfm-rubygem-nokogiri | 1.11.3-2.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | candlepin | 4.0.9-1.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | foreman | 2.5.2.17-2.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | python-aiohttp | 3.7.4-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite 6 | python-ecdsa +1 | 0.13.3-2.el7pc | RHSA-2021:4702 |
| Red Hat Satellite 6 | python-pyyaml +1 | 5.4.1-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite 6 | python-urllib3 +1 | 1.26.5-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite 6 | python3-django | 2.2.24-1.el7pc | RHSA-2021:4702 |
| Red Hat Satellite 6 | satellite | 6.10.0-3.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | tfm-rubygem-activerecord-session_store | 2.0.0-1.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | tfm-rubygem-addressable | 2.8.0-1.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | tfm-rubygem-nokogiri | 1.11.3-2.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | tfm-rubygem-puma | 5.3.2-1.el7sat | RHSA-2021:4702 |
| Red Hat Satellite 6 | tfm-rubygem-rails +1 | 6.0.3.7-1.el7sat | RHSA-2021:4702 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP3 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
| SLES 15 SP2 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
| SLES 15 SP1 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
| SLES 15 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SUSE OpenStack Cloud Crowbar 9 | rubygem-puma | 2.16.0-4.12.1 | SUSE-SU-2021:2914-1 |
| SUSE OpenStack Cloud Crowbar 8 | rubygem-puma | 2.16.0-3.12.1 | SUSE-SU-2021:2761-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | ruby3.2-rubygem-puma-5 | 5.6.5-1.7 | openSUSE-SU-2024:13166-1 |
| openSUSE Tumbleweed | rubygem-puma-5 | 5.6.5-1.1 | openSUSE-SU-2024:13721-1, openSUSE-SU-2024:12592-1 |
| openSUSE Leap 15.4 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
| openSUSE Leap 15.3 | rubygem-puma | 4.3.11-150000.3.6.2 | SUSE-SU-2022:1515-1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | puma | < 4.3.8 | 4.3.8 | GHSA-q28m-8xjw-8vr5 |
| RubyGems | puma | >= 5.0.0, < 5.3.1 | 5.3.1 | GHSA-q28m-8xjw-8vr5 |
Advisories 8
- RHSA-2021:4702 Red Hat Security Advisory: Satellite 6.10 Release Red Hat Security Advisories (RHSA) · Oct 13, 2026
- DLA-3083-1 puma - security update Debian Security (DSA / DLA) · Mar 9, 2026
- openSUSE-SU-2024:13166-1 ruby3.2-rubygem-puma-5-5.6.5-1.7 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2021:2914-1 Security update for rubygem-puma SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2024:13721-1 ruby3.3-rubygem-puma-5-5.6.8-1.1 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2021:2761-1 Security update for rubygem-puma SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2024:12592-1 ruby3.1-rubygem-puma-5-5.6.5-1.1 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2022:1515-1 Security update for rubygem-puma SUSE / openSUSE Security Updates · May 2, 2025
References
- https://github.com/puma/puma/security/advisories/GHSA-q28m-8xjw-8vr5
- https://gist.github.com/nateberkopec/4b3ea5676c0d70cbb37c82d54be25837
- https://github.com/puma/puma/security/policy
- https://rubygems.org/gems/puma
- GLSA-202208-28 vendor-advisory
- [debian-lts-announce] 20220827 [SECURITY] [DLA 3083-1] puma security update mailing-list