Skip to content

Keepalive thread overload/DoS

Moderate
nateberkopec published GHSA-7xx3-m584-x994 Dec 5, 2019 · 1 comment

Package

bundler puma (RubyGems)

Affected versions

<4.3.0

Patched versions

4.3.1, 3.12.2

Description

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.

Severity

Moderate

CVE ID

CVE-2019-16770

Weaknesses

No CWEs