Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to WebSocket TCP endpoint
-
DeliverySend HTTP Upgrade with malformed Host header
-
ExploitURI.parse() raises URI::InvalidURIError
-
ExecutionException propagates uncaught through parse()
-
PersistServer process terminates
-
ImpactAll clients denied service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
|
| Exploitation Conditions | The target application must be using websocket-driver-ruby in server mode - specifically calling WebSocket::Driver.server() to handle incoming WebSocket connections on top of a TCP server. Applications using the library only in client mode (WebSocket::Driver.client()) are not affected. The attacker must be able to reach the WebSocket endpoint over the network and complete a TCP connection to send an HTTP Upgrade request. The CVSS 4.0 AT:P metric captures this deployment-mode prerequisite. Exploitation is further limited by the requirement that the application itself does not rescue exceptions from the parse() method - any application that already wraps parse() in a broad rescue block will not crash. No authentication is required and no specific platform or OS is needed; the flaw is purely in Ruby gem logic. |
| Impact | The CVSS 4.0 score of 8.9 is credible and appropriately weighted. AV:N/AC:L/PR:N/UI:N confirms the attack requires no authentication and no victim interaction - a single malformed TCP request is sufficient. AT:P (Attack Prerequisites: Present) in CVSS 4.0 correctly identifies the limiting condition: only applications using WebSocket::Driver.server() are vulnerable. VA:H and SA:H reflect that a crash terminates the server process, denying service to all connected clients and downstream services. No EPSS data was provided; the CVE is not in CISA KEV, so no confirmed active exploitation exists at time of analysis. Despite the absence of a KEV listing, real-world risk is elevated because the triggering payload is trivial - no memory corruption, no gadget chaining, just a single malformed header value - meaning even a mid-sized municipal IT team in bytom running Ruby WebSocket infrastructure should treat this as urgent rather than waiting for a KEV confirmation. The absence of confidentiality or integrity impact caps the damage to service disruption, but repeated or automated requests could achieve sustained, difficult-to-mitigate denial of service against exposed endpoints. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a TCP connection to an exposed Ruby WebSocket server and issues an HTTP Upgrade request where the Host header contains a URI-illegal string such as a bare bracket character or an embedded space. The websocket-driver-ruby request parser calls URI.parse() on the value, Ruby raises URI::InvalidURIError, and because no rescue exists in the library prior to 0.8.2, the exception propagates out of parse() and terminates the server process. No public exploit code has been identified at time of analysis, but the attack is trivially constructible without tooling beyond a standard TCP client. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Aug 17, 2026
Denial of service in websocket-driver-ruby (all versions before 0.8.2) allows any unauthenticated remote client to crash a Ruby WebSocket server process by sending an HTTP Upgrade request containing a syntactically invalid Host header value. The root cause is an unhandled URI::InvalidURIError exception raised during Host header parsing in the request.complete() method, which propagates uncaught to the top level and terminates the server process. No public exploit has been identified at time of analysis, but the attack technique is trivially constructible from the CVE description and the published patch diff alone.
Earlier versions of this analysis (1)
Denial of service in the Ruby websocket-driver gem (versions < 0.8.2) lets a remote client crash a WebSocket server built via WebSocket::Driver.server() by sending a malformed Host header. The request parser passes the header into URI.parse without handling failures, so a Host value that is not a valid host[:port] string raises an uncaught URI::InvalidURIError that can terminate the server process. There is no public exploit identified at time of analysis and no KEV listing; impact is limited to availability, with no data disclosure or code execution.
RemediationAI
Upgrade the websocket-driver-ruby gem to version 0.8.2 or later, which is confirmed as the vendor-released fix per the GitHub Security Advisory GHSA-2x63-gw47-w4mm. The patch (commit 7d6fd87759a2fdc83590d3b49ffa661dc53fa128, available at https://github.com/faye/websocket-driver-ruby/commit/7d6fd87759a2fdc83590d3b49ffa661dc53fa128) adds a rescue URI::InvalidURIError block in lib/websocket/http/request.rb that causes the parser to enter an error state and reject the connection rather than raising. No vendor-documented workarounds exist. As a fragile interim measure only, application developers can wrap their own calls to parse() in a rescue block to prevent process termination, but this requires application-level changes and does not fix the underlying library defect - upgrade to 0.8.2 remains the only reliable remediation.
Affected VersionsENISA
Affected Packages
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 websocket-driver-ruby gem (pkg:rubygems/websocket-driver) implements the WebSocket protocol framing and HTTP upgrade handshake for Ruby applications, serving as the underlying engine for the faye-websocket gem and Rails ActionCable. In server mode (WebSocket::Driver.server()), the library parses the incoming HTTP Upgrade request in lib/websocket/http/request.rb. The complete() method extracts the HTTP_HOST header and calls Ruby's standard URI.parse() to decompose it into SERVER_NAME and SERVER_PORT components. Ruby's URI module raises URI::InvalidURIError for strings containing characters or structures that violate RFC 3986, and prior to version 0.8.2 no rescue clause existed in this code path. CWE-248 (Uncaught Exception) precisely describes the flaw: an exception escapes the library boundary and propagates into the application layer, crashing the process unless the caller explicitly rescues from parse() - an expectation not documented to consumers of the library.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
Network-reachable endpoint, no authentication or interaction required, scope unchanged; sole impact is total availability loss via process crash, no confidentiality or integrity component.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (https://github.com/faye/websocket-driver-ruby).
CVSS VectorVendor: https://github.com/faye/websocket-driver-ruby
Lifecycle Timeline
3DescriptionCVE.org
Impact
If this library is used to implement a WebSocket server on top of a TCP server, by using the WebSocket::Driver.server() method, then a client can cause the server to crash by sending a Host header that is not a valid host[:port] string. When this happens, a URI::InvalidURIError exception is raised which is not caught, and this can cause the server process to crash if the application does not catch the error from the parse() method itself.
Patches
The issue has been patched in version 0.8.2 by making the request parser catch URI::InvalidURIError and enter an error state if the Host header is malformed. This means the request is considered invalid and should not establish a WebSocket connection.
Workarounds
No known workarounds exist.
Acknowledgements
This issue was discovered and reported by Pranjali Thakur, DepthFirst Security Research Team.
Executive ViewAI
websocket-driver-ruby versions below 0.8.2 contain a remotely exploitable denial of service vulnerability allowing unauthenticated external attackers to crash server processes. Organizations operating WebSocket services face immediate availability disruption risk. Upgrading to version 0.8.2 is the critical remediation step.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Same weakness CWE-248 – Uncaught Exception
View allSame technique Denial Of Service
View allVendor 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 |
| SUSE Linux Enterprise High Availability Extension 15 SP2 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP3 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP6 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-60264
GHSA-2x63-gw47-w4mm
NVD
CVE.org
EPSS
VulDB
Exploit-DB