Skip to main content

websocket-driver CVE-2026-54465

| EUVDEUVD-2026-45311 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-07-15 https://github.com/faye/websocket-driver-ruby GHSA-8j3g-f24p-4mpw
6.3
CVSS 4.0 · Vendor: https://github.com/faye/websocket-driver-ruby
View

Attack ChainAIDerived

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

  1. Access
    Open TCP connection to raw WebSocket server
  2. Delivery
    Send HTTP upgrade request with endless header stream
  3. Exploit
    Parser accumulates headers with no size limit
  4. Execution
    Process heap exhausted
  5. Impact
    Service crashes or becomes unresponsive

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

Exploitation requires that the target application uses WebSocket::Driver.server() to accept WebSocket connections directly on a raw TCP server, bypassing any HTTP server or framework (such as Rack, Rails, Sinatra, Puma, or Unicorn). Alternatively, exploitation applies to WebSocket client implementations that use this library to parse HTTP responses, where the remote server is attacker-controlled. Applications that integrate websocket-driver through an HTTP framework are NOT vulnerable because the framework's own HTTP parser enforces header limits upstream. No authentication is required in the affected raw-TCP-server pattern, and no special attacker capabilities beyond the ability to open a TCP connection are needed. The limiting factors are entirely architectural: only deployments that expose Driver.server() directly to untrusted peers are at risk.

Impact

No CVSS score or vector was assigned by NVD at time of analysis, and no EPSS probability is available, so quantitative risk signals are absent. The vulnerability is not listed in CISA KEV and no public proof-of-concept has been identified, making this a theoretical-but-credible risk rather than an actively exploited threat. The impact is a hard Denial of Service - a single malicious connection can exhaust process memory, potentially crashing the service or triggering OOM kills. Critically, exploitation is constrained to a specific deployment pattern: raw TCP-backed WebSocket servers using Driver.server() or WebSocket client implementations. Most Ruby applications that use websocket-driver transitively (e.g., via faye-websocket or Rails ActionCable) do so behind an HTTP framework that preprocesses headers, effectively eliminating the vulnerable code path. The real-world population of directly vulnerable deployments is therefore a subset of all websocket-driver users. Within that subset, exploitation requires no authentication and no user interaction, and a single connection suffices - making it high-severity for operators who match the affected pattern. Teams should audit whether their websocket-driver usage involves Driver.server() on a raw TCP socket before prioritizing remediation urgency.

Exploit ScenarioDerived

An attacker establishes a TCP connection to a Ruby WebSocket server that uses WebSocket::Driver.server() without an intermediary HTTP framework, then transmits an HTTP upgrade request containing thousands of arbitrary header lines in a slow or streaming fashion. The websocket-driver parser appends each header to an in-memory structure without bound, causing the Ruby process heap to grow until available system memory is exhausted, resulting in an OOM kill or process crash and denying service to all legitimate clients. No exploit code is required - a simple netcat or custom socket script suffices.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 15, 2026

Memory exhaustion in the websocket-driver Ruby gem (versions prior to 0.8.1) allows a remote peer to crash or degrade a receiving process by sending an HTTP request or response with an arbitrarily large number of headers, which the parser accumulates without any size bound. Affected deployments are those using WebSocket::Driver.server() directly atop a raw TCP server (bypassing an HTTP framework), or applications using this library as a WebSocket client - standard HTTP framework integrations (Rails, Sinatra, Rack) are not in scope. No public exploit has been identified and the vulnerability is not listed in CISA KEV, but exploitation is mechanically trivial once a vulnerable deployment is identified, requiring only a crafted HTTP connection.

RemediationAI

Upgrade websocket-driver to version 0.8.1 or later, which is the vendor-confirmed fix. The patch limits total HTTP request/response header data accepted by the parser to 32 kB per connection, preventing unbounded memory growth. Update your Gemfile or gemspec to require >= 0.8.1 and run bundle update websocket-driver. The vendor advisory at https://github.com/faye/websocket-driver-ruby/security/advisories/GHSA-8j3g-f24p-4mpw confirms no workarounds exist. If an immediate upgrade is not possible, operators using Driver.server() on raw TCP sockets should consider placing the WebSocket server behind a reverse proxy (such as nginx or HAProxy) configured with strict client header size limits (e.g., nginx's large_client_header_buffers directive), which would intercept oversized header blocks before they reach the Ruby process - though this introduces operational complexity and does not substitute for patching.

Affected VersionsENISA

websocket-driver-ruby < 0.8.1

Affected Packages

rubygems websocket-driver fix: 0.8.1
euvd websocket_driver_ruby fix: 0.8.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in rubygems, euvd

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

Technical ContextAI · show details

The affected package is rubygems/websocket-driver, the Faye project's pure-Ruby WebSocket protocol implementation. During the WebSocket upgrade handshake, an HTTP parser processes incoming request or response lines and headers. Prior to version 0.8.1, this parser imposed no cumulative size limit on the header block, meaning each additional header line allocated more heap memory with no ceiling. CWE-400 (Uncontrolled Resource Consumption) precisely describes this root cause: the resource (memory) consumed is proportional to attacker-controlled input (header count/size) with no enforced upper bound. The fix introduced in 0.8.1 caps total HTTP request/response line and header data at 32 kB, a standard defensive threshold. The vulnerability only manifests in code paths where websocket-driver itself owns the raw TCP stream and runs its own HTTP parser - when embedded inside an existing HTTP server or framework, that framework's parser enforces its own limits before websocket-driver sees the data.

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/faye/websocket-driver-ruby) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L
vuln.today AI 7.5 HIGH

Network-reachable with no authentication or user interaction required in the affected raw-TCP pattern; impact is availability only as memory exhaustion causes DoS with no data exposure or modification.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (https://github.com/faye/websocket-driver-ruby).

CVSS VectorVendor: https://github.com/faye/websocket-driver-ruby

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
Low

Lifecycle Timeline

1
CVSS changed
Jul 17, 2026 - 20:22 NVD
6.3 (MEDIUM)

DescriptionCVE.org

Impact

If this library is used to implement a WebSocket server on top of a TCP server (rather than an HTTP server or framework) using the WebSocket::Driver.server() method, or, if it is used to complement a WebSocket client, then a peer can make a single connection consume an unbounded amount of memory by sending an HTTP request or response with a never-ending list of headers. This can lead to the receiving process running out of memory.

Patches

The issue has been patched in version 0.8.1, by limiting the total size of HTTP request/response lines and headers accepted by the parser to 32 kB. All users should upgrade to this version.

Workarounds

No known workarounds exist.

Acknowledgements

This issue was discovered and reported by Pranjali Thakur, DepthFirst Security Research Team.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Medium
popular Ruby WebSocket dependency used by faye-websocket and downstream frameworks
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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 Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

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