VDB
KO
MEDIUM 5.3

GHSA-7xx3-m584-x994

A poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack

Details

## 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](github.com/puma/puma).

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems / puma
Introduced in: 0 Fixed in: 3.12.2
Fix bundle update puma
RubyGems / puma
Introduced in: 4.0.0 Fixed in: 4.3.1
Fix bundle update puma

References