Skip to main content

Puma CVE-2026-47736

| EUVDEUVD-2026-44442 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-06-08 https://github.com/puma/puma GHSA-qpgp-93vx-g8v8
7.5
CVSS 3.1 · Vendor: https://github.com/puma/puma
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify exposed Puma listener with PROXY v1
  2. Delivery
    Open raw TCP connection to port
  3. Exploit
    Send bytes without CRLF terminator
  4. Install
    Force unbounded pre-parse buffer growth
  5. C2
    Trigger repeated CRLF scans on growing buffer
  6. Execute
    Exhaust worker memory or CPU
  7. Impact
    Puma process OOM, service unavailable

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires that the target Puma server (version 5.5.0 through 7.2.0, or 8.0.0/8.0.1) has the non-default set_remote_address proxy_protocol: :v1 directive set in its Puma DSL configuration, and that the attacker can open a raw TCP connection directly to the Puma listener port. No authentication, no user interaction, and no specific OS or Ruby version are required. Exploitation is limited by the fact that PROXY v1 parsing is off by default and that production deployments typically place Puma behind a load balancer that terminates client TCP, so an attacker reaching the listener directly (e.g. exposed port, flat network, or compromised intermediate host) is the principal gating condition.

Impact

The CVSS v3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H correctly characterises an unauthenticated network-reachable availability-only flaw, scoring 7.5 (High). The realistic risk is more nuanced: exploitation is trivial (a single TCP connection with no CRLF), automatable, and pre-authentication, but the impact is bounded to denial of service of the Puma process or container, with no path to code execution or data disclosure. The advisory itself notes that only deployments enabling the non-default set_remote_address proxy_protocol: :v1 directive are affected, which materially narrows the exposed population. There is no CISA KEV listing, no EPSS score supplied, and no public exploit identified at time of analysis, so this should be treated as a real but targeted DoS risk: high priority for shops that have explicitly enabled PROXY v1 and expose Puma directly to untrusted networks, lower priority for the typical deployment behind a load balancer that strips or never speaks PROXY v1.

Exploit ScenarioDerived

An attacker identifies an internet-reachable Puma listener that has PROXY protocol v1 enabled (for example, a misconfigured deployment where the listener is exposed alongside, rather than behind, the load balancer). The attacker opens a TCP socket and slowly trickles bytes that never contain '\r\n', causing Puma to accumulate the data in its pre-parse buffer and repeatedly scan it for CRLF; a handful of such connections from a single host can drive the worker process into out-of-memory termination or pin CPU, taking the service offline. No public exploit identified at time of analysis, but a working proof of concept is on the order of a few lines of netcat or Python.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 09, 2026

Remote denial-of-service in Puma Ruby web server versions 5.5.0 through 7.2.0 and 8.0.0 through 8.0.1 allows unauthenticated attackers to exhaust process memory by opening a TCP connection and sending data without CRLF terminators when PROXY protocol v1 support is enabled. The vulnerability lives in the PROXY v1 pre-parse buffer, which grows without bound while Puma waits for the '\r\n' delimiter, leading to OOM kills or container restarts. No public exploit identified at time of analysis, and the issue only affects servers explicitly opting into the non-default set_remote_address proxy_protocol: :v1 configuration.

RemediationAI

Vendor-released patch: upgrade Puma to 7.2.1 (for the 5.5.0-7.2.0 branch) or 8.0.2 (for the 8.0.x branch) per GHSA-qpgp-93vx-g8v8. If immediate upgrade is not possible and PROXY protocol v1 is not actually required, remove or comment out the set_remote_address proxy_protocol: :v1 line in the Puma DSL configuration; the trade-off is that Puma will then see the load balancer's IP as the client address unless another mechanism (e.g. trusted X-Forwarded-For handling in the application) is in place. If PROXY v1 must remain enabled, restrict L4 access to the Puma listener so that only trusted load balancers or reverse proxies (e.g. HAProxy, AWS NLB, GCP TCP LB) can connect, using firewall, security group, or network policy rules to block arbitrary client TCP access - be aware this protection collapses if an attacker can pivot into the same network segment or if the load balancer forwards arbitrary client TCP without sanitisation.

Affected VersionsENISA

puma 5.5.0, < 7.2.1
puma 8.0.0, < 8.0.2

Affected Packages

rubygems puma fix: 7.2.1, 8.0.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in rubygems

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Puma is a widely deployed multi-threaded Ruby HTTP server commonly used to host Rails and Rack applications behind load balancers. The HAProxy PROXY protocol v1 is a plaintext protocol that prepends a line such as 'PROXY TCP4 src dst sport dport\r\n' to a TCP connection so the backend can recover the real client address through an L4 proxy. Puma added optional PROXY v1 parsing in version 5.5.0; the parser, implemented in lib/puma/client.rb against the PROXY_PROTOCOL_V1_REGEX constant in lib/puma/const.rb, accumulates inbound bytes into a pre-parse buffer and rescans it for CRLF on every read. Because there is no cap on the buffer size or on the time spent waiting for the delimiter, this is a textbook CWE-400 (Uncontrolled Resource Consumption) and CWE-770 (Allocation of Resources Without Limits or Throttling) condition - an attacker controls how much data is held in memory and how often the scan runs.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/puma/puma) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
SUSE HIGH
Red Hat 7.5 HIGH

Primary rating from Vendor (https://github.com/puma/puma).

CVSS VectorVendor: https://github.com/puma/puma

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

Impact

PROXY protocol support for Puma was added in version 5.5.0.

When PROXY protocol v1 support is enabled, Puma reads incoming bytes into an internal buffer. It waits for "\r\n" to determine whether a PROXY v1 line is present. If an attacker opens a TCP connection and continuously sends bytes without CRLF, Puma keeps appending to this pre-parse buffer.

This can cause unbounded in-process memory growth and additional CPU cost from repeatedly scanning the growing buffer for CRLF. A single, unauthenticated TCP connection can drive significant memory growth and may cause process/container OOM or degraded availability.

Only Puma servers using the following non-default config are affected:

ruby
   set_remote_address proxy_protocol: :v1

Patches

Users should upgrade to versions 7.2.1 or 8.0.2.

Workarounds

  • Disable PROXY protocol v1 parsing if it is not required:
ruby
# remove/comment this:
# set_remote_address proxy_protocol: :v1
  • Restrict direct network access to Puma listeners using PROXY protocol:
  • Only allow trusted load balancers/reverse proxies to connect.
  • Block arbitrary client TCP access with firewall/security group rules.

Resources

Executive ViewAI

Why It Matters

Puma Ruby web server versions 5.5.0-7.2.0 and 8.0.0-8.0.1 contain a remote denial-of-service vulnerability allowing unauthenticated attackers to crash affected application servers through memory exhaustion, causing service outages and container restarts. Organizations deploying Puma with PROXY protocol v1 support enabled face immediate operational risk and potential business disruption if the configuration is active in production environments.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable PROXY protocol v1 configuration if not required for production traffic; (2) Implement network segmentation and firewall rules to restrict PROXY protocol connections to known, trusted load balancer IP ranges only; (3) Configure application server resource limits (memory caps, connection limits) and auto-restart policies to minimize outage duration; (4) Deploy rate-limiting or connection-timeout mechanisms at the reverse proxy layer to reject malformed PROXY protocol requests; (5) Monitor memory usage and establish alerting for anomalous consumption patterns in production environments.

Threat Intelligence Overview

EPSS Score
0.1%
Top 83% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP4 Affected
SUSE Linux Enterprise High Availability Extension 15 SP5 Affected
SUSE Linux Enterprise High Availability Extension 15 Affected
SUSE Linux Enterprise High Availability Extension 15 SP1 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy