GitHub Advisoryadvisory · RubyGems
GHSA-7xx3-m584-x994 A poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack
MEDIUM
Official page ↗
- Aliases
- CVE-2019-16770
- Ecosystem
- RubyGems
- Packages
- puma
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Weaknesses
- CWE-770
- Reviewed
- 2020-06-16
Affected packages
• RubyGems puma: < 3.12.2 → fixed in 3.12.2
• RubyGems puma: >= 4.0.0, < 4.3.1 → fixed in 4.3.1
Description
Keepalive thread overload/DoS
Impact
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.
Patches
This vulnerability is patched in Puma 4.3.1 and 3.12.2.
Workarounds
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.
For more information
If you have any questions or comments about this advisory:
• Open an issue at puma.
Related
Alias · CVE (1)
- CVE-2019-16770 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… vulnerability
Weakness · CWE (1)
- CWE-770 Allocation of Resources Without Limits or Throttling weakness
References
- https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994 web
- https://nvd.nist.gov/vuln/detail/CVE-2019-16770 advisory
- https://github.com/advisories/GHSA-7xx3-m584-x994 advisory
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2019-16770.yml web
- https://lists.debian.org/debian-lts-announce/2022/05/msg00034.html web