Skip to main content

websocket-driver EUVDEUVD-2026-45311

| CVE-2026-54465 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
Share

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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
qualitative

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
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
CVSS changed
Jul 17, 2026 - 20:22 NVD
6.3 (MEDIUM)
Source Code Evidence Fetched
Jul 15, 2026 - 22:32 vuln.today
Analysis Generated
Jul 15, 2026 - 22:32 vuln.today

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.

AnalysisAI

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.

Technical ContextAI

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.

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.

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

Share

EUVD-2026-45311 vulnerability details – vuln.today

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