LiveActive security incident?Get immediate response
CVE Record

CVE-2021-29509: Keepalive Connections Causing Denial Of Service in puma

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.

HighCVSS 7.5Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

Affected Puma servers can be made unavailable when too many persistent keep-alive connections consume the server’s thread capacity. The issue does not expose or alter data, but it can prevent legitimate users from being served. Fixed Puma releases are 4.3.8 and 5.3.1.

Executive priority

Prioritize remediation for public-facing Ruby services and high-availability internal systems. This is not a data theft issue based on the provided sources, but outage risk is credible and the fix path is clear for supported Puma versions.

Technical view

CVE-2021-29509 is a CWE-400 resource exhaustion issue in Puma. The earlier CVE-2019-16770 fix protected accepted connections, but new connections could still be starved when greedy persistent connections saturated all threadpools across clustered processes. CVSS 3.1 is 7.5 high.

Likely exposure

Ruby/Rack applications running Puma versions below 4.3.8, or Puma 5.0.0 through before 5.3.1, are the named exposure. Internet-facing services have higher business risk because the attack vector is network reachable and unauthenticated.

Exploitation context

The source bundle does not show CISA KEV listing or confirmed active exploitation. The vulnerability is still important because the CVSS vector indicates network access, low complexity, no privileges, no user interaction, and high availability impact.

Researcher notes

Focus review on Puma keep-alive behavior, clustered process threadpool saturation, and whether deployment topology includes a reverse proxy. Evidence supports denial of service only; do not infer confidentiality, integrity, or active exploitation from the supplied sources.

Mitigation direction

  • Upgrade Puma to 4.3.8, 5.3.1, or later supported releases.
  • For unsupported Puma versions, review the vendor advisory and available git patch.
  • Consider setting queue_requests false only with an appropriate reverse proxy in front.
  • Do not use queue_requests false without assessing slow-client attack exposure.
  • Track downstream distribution advisories if using packaged Puma from Debian or Gentoo.

Validation and detection

  • Inventory Ruby/Rack services and identify their Puma versions.
  • Confirm affected ranges: below 4.3.8, or 5.0.0 through before 5.3.1.
  • Review Puma configuration for queue_requests and reverse proxy assumptions.
  • Confirm production runtime versions match updated dependency manifests.
  • Run regression tests covering normal request handling and service availability.
Prepared
Confidence
high
Sources
8

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-400: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2021-29509 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
7.5 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
7Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
7.5CVSS 3.1HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H3.93.6Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

7.5High
CVSS 3.1 vector shape for CVE-2021-29509Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
pumapuma< 4.3.8, >= 5.0.0, < 5.3.1Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-400 · source CWE mapping

Uncontrolled Resource Consumption

Uncontrolled Resource Consumption represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.