Bug 1831297 (CVE-2019-16770)

Summary: CVE-2019-16770 rubygem-puma: keepalive requests from poorly-behaved client leads to denial of service
Product: [Other] Security Response Reporter: msiddiqu
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: akarol, amasferr, chazlett, dmetzger, gmccullo, gtanzill, hhorak, hvyas, jaruga, jhardy, jorton, roliveri, ruby-maint, ruby-packagers-sig, simaishi, smallamp, vondruch
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: rubygem-puma 4.3.1, rubygem-puma 3.12.2 Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in rubygem-puma. 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.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-10-28 07:58:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1831306, 1831537, 1832167    
Bug Blocks: 1831302    

Description msiddiqu 2020-05-04 20:01:40 UTC
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 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. This vulnerability is patched in Puma 4.3.1 and 3.12.2.

References:

https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994

Comment 2 msiddiqu 2020-05-04 20:35:03 UTC
Created rubygem-puma tracking bugs for this issue:

Affects: fedora-all [bug 1831306]

Comment 6 Przemyslaw Roguski 2020-05-06 08:01:34 UTC
Statement:
Red Hat Gluster Storage Web Administration component uses affected RubyGem Puma.

Added external reference and mitigation:
On the external reference at workaround section there is information about possible vulnerability mitigation.

Comment 7 Przemyslaw Roguski 2020-05-06 08:01:39 UTC
Statement:

Red Hat CloudForms uses affected RubyGem Puma, however, not vulnerable since after increasing multiple keepalive connections compare to threads available; additional connections have not waited long.

Red Hat Gluster Storage Web Administration component uses affected RubyGem Puma.

Comment 8 Przemyslaw Roguski 2020-05-06 08:01:42 UTC
External References:

https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994

Comment 10 Przemyslaw Roguski 2020-05-06 08:40:53 UTC
Mitigation:

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.