Resource Exhaustion Affecting rubygem-puma-doc package, versions *


Severity

Recommended
medium

Based on Red Hat Enterprise Linux security rating.

Threat Intelligence

EPSS
0.95% (84th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Resource Exhaustion vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-RHEL7-RUBYGEMPUMADOC-3374921
  • published26 Mar 2023
  • disclosed11 May 2021

Introduced: 11 May 2021

CVE-2021-29509  (opens in a new tab)
CWE-400  (opens in a new tab)

How to fix?

There is no fixed version for RHEL:7 rubygem-puma-doc.

NVD Description

Note: Versions mentioned in the description apply only to the upstream rubygem-puma-doc package and not the rubygem-puma-doc package as distributed by RHEL. See How to fix? for RHEL:7 relevant fixed versions and status.

Puma is a concurrent HTTP 1.1 server for Ruby/Rack applications. The fix for CVE-2019-16770 was incomplete. The original fix only protected existing connections that had already been accepted from having their requests starved by greedy persistent-connections saturating all threads in the same process. However, new connections may still be starved by greedy persistent-connections saturating all threads in all processes in the cluster. A puma server which received more concurrent keep-alive connections than the server had threads in its threadpool would service only a subset of connections, denying service to the unserved connections. This problem has been fixed in puma 4.3.8 and 5.3.1. Setting queue_requests false also fixes the issue. This is not advised when using puma without a reverse proxy, such as nginx or apache, because you will open yourself to slow client attacks (e.g. slowloris). The fix is very small and a git patch is available for those using unsupported versions of Puma.

CVSS Scores

version 3.1