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 Published 2019-12-05 Modified 2021-01-08 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