Skip to main content

websocket-driver EUVDEUVD-2026-45310

| CVE-2026-54463 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-07-15 https://github.com/faye/websocket-driver-ruby GHSA-ghhp-3qvg-889p
6.9
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
    Reach WebSocket endpoint over network
  2. Delivery
    Complete HTTP upgrade handshake
  3. Exploit
    Stream continuous 0x80 bytes in frame length field
  4. Execution
    Parser accumulates unbounded Ruby Bignum
  5. Persist
    Host process OOM-killed
  6. Impact
    WebSocket 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

Exploitation requires the attacker to establish a valid WebSocket connection to the target - the HTTP upgrade handshake must succeed. If the WebSocket endpoint requires HTTP authentication, session cookies, or API tokens before upgrading, unauthenticated remote exploitation is blocked at that layer (the protocol-level PR:N does not override application-layer auth). The draft WebSocket protocol length-header parsing path must be reachable, which is the case for any connection handled by a vulnerable version of websocket-driver < 0.8.1. No specific configuration setting or non-default feature flag is required - the vulnerable code path is exercised by normal frame parsing on every connection. What limits exploitation: application-layer authentication before WebSocket upgrade, network-level access controls (firewalls, VPN requirements), and process isolation (containerization bounds the OOM blast radius to a single worker rather than the full host).

Impact

No CVSS vector was provided in the source data, so scoring is independently assessed below. EPSS and KEV data are absent, and no POC is publicly documented at time of analysis, which places this in a lower-urgency tier despite the clear exploitability. The attack is technically trivial - a peer simply holds a WebSocket connection open and sends a continuous stream of high-bit-set bytes - requiring no memory corruption, no ROP chain, and no authentication at the WebSocket protocol layer. The primary real-world constraint is that the attacker must be able to reach the WebSocket endpoint, and many deployments gate that endpoint behind HTTP authentication or session cookies before the protocol upgrade occurs. The impact is a clean DoS: process memory exhaustion causing an OOM kill, with no confidentiality or integrity impact. In single-process Ruby servers (e.g., Puma single-mode, older Thin/Unicorn), a single malicious connection can take down the entire application. In multi-process or containerized deployments the blast radius is bounded to the affected worker. No conflicting signals exist - all data consistently indicates an unauthenticated network DoS with no exploitation in the wild confirmed.

Exploit ScenarioDerived

An attacker connects to a publicly accessible WebSocket endpoint - for example, a Faye pub/sub server or a Rails ActionCable endpoint not gated by authentication - and after the HTTP upgrade handshake completes, begins streaming a continuous sequence of 0x80 bytes as the frame length field without ever completing the frame. The vulnerable parser accumulates these bytes into an ever-growing Ruby Bignum object, causing heap memory to grow without bound until the Ruby process is killed by the OS out-of-memory manager, taking down all WebSocket sessions on that worker. No public POC has been identified, but the technique is mechanically trivial to implement.

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 Ruby websocket-driver gem (faye/websocket-driver-ruby) allows any network peer to crash the host process by abusing the draft WebSocket protocol's variable-length integer encoding. By streaming an indefinite sequence of bytes with values 0x80 or above in a frame length header, an attacker forces the parser to accumulate an ever-growing Ruby arbitrary-precision integer, consuming unbounded heap memory until the process is killed by the OS. The attack is bidirectional - a malicious server can target a client, or a malicious client can target a server - and no public exploit has been identified at time of analysis.

RemediationAI

Upgrade websocket-driver to version 0.8.1 or later, which is the vendor-confirmed patched release per the GitHub security advisory at https://github.com/faye/websocket-driver-ruby/security/advisories/GHSA-ghhp-3qvg-889p. Update your Gemfile to require 'websocket-driver', '>= 0.8.1' and run bundle update websocket-driver, then verify the installed version with bundle list. The advisory explicitly states no known workarounds exist. If immediate patching is not possible, compensating controls with trade-offs include: restricting WebSocket endpoint access to authenticated or known-IP clients at the load balancer or WAF layer (trade-off: breaks legitimate anonymous WebSocket consumers); setting aggressive TCP idle-timeout and per-connection memory limits at the server or reverse proxy level to limit per-connection damage (trade-off: may disrupt legitimate long-lived connections); and deploying the application in containerized or process-isolated environments so that an OOM kill is scoped to a single worker and does not affect the full service (trade-off: operational complexity, not a prevention).

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 (pkg:rubygems/websocket-driver), the low-level WebSocket framing library used by Faye and related Ruby WebSocket stacks. The draft WebSocket protocol frame format encodes payload length using a variable-length big-endian integer where bytes with the high bit set (0x80-0xFF) indicate continuation - semantically similar to MQTT or Protocol Buffers varint encoding. The parser must accumulate these bytes before it knows the full length value. In Ruby, integers are arbitrary precision (switching from Fixnum to Bignum transparently), so there is no natural overflow boundary to terminate the parse. CWE-400 (Uncontrolled Resource Consumption) describes this root cause precisely: the parser fails to impose an upper bound on the integer it is constructing, allowing a peer to dictate how much memory the process allocates.

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.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L
vuln.today AI 7.5 HIGH

Network-reachable WebSocket endpoint, low complexity byte stream attack, no privileges required at protocol layer; pure availability impact, no confidentiality or integrity effect.

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 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
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
None
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.9 (MEDIUM)

DescriptionCVE.org

Impact

The frame format in draft versions of the WebSocket protocol includes a length header that allows an arbitrarily large integer to be encoded as a sequence of bytes with the high bit set. By sending an indefinite sequence of bytes with values 0x80 or above, a server or client can make the other peer parse these bytes into an ever-growing integer. Since Ruby integers are arbitrary precision, this can be used to make a WebSocket connection consume an unbounded amount of memory and lead to the host process running out of memory.

Patches

The issue has been patched in version 0.8.1. 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
widely used Ruby WebSocket library, not universal infrastructure
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

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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: Moderate
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