CVE-2026-61666
websocket-driver: Denial of service via malformed Host header
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.9
websocket-driver: Denial of service via malformed Host header
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
CVE-2026-61666- CVSS 4.0
- 8.9 High
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 - Weakness
- CWE-248
- Updated
- 2026-11-02
EUVDEUVD-2026-60264
8.9
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
EUVD-2026-60264- CVSS 4.0
- 8.9 High
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2x63-gw47-w4mm
8.9
websocket-driver-ruby: Denial of service via malformed Host header
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.
- Record
GHSA-2x63-gw47-w4mm- CVSS 4.0
- 8.9 High
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 - Weakness
- CWE-248
- Updated
- 2026-11-03
NVD
8.9
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
CVE-2026-61666- CVSS 4.0
- 8.9 High
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/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 - Weakness
- CWE-248
- Updated
- 2026-11-02
OSV
8.9
websocket-driver: Denial of service via malformed Host header
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
CVE-2026-61666- CVSS 4.0
- 8.9 High
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 - Weakness
- CWE-248
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-61666
8.9
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
DEBIAN-CVE-2026-61666- CVSS 4.0
- 8.9 High
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/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 - Updated
- 2026-11-02
OSVGHSA-2x63-gw47-w4mm
8.9
websocket-driver-ruby: Denial of service via malformed Host header
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.
- Record
GHSA-2x63-gw47-w4mm- CVSS 4.0
- 8.9 High
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 - Weakness
- CWE-248
- Updated
- 2026-11-03
OSVOESA-2026-3218
8.9
rubygem-websocket-driver security update
This module provides a complete implementation of the WebSocket protocols that can be hooked up to any TCP library. It aims to simplify things by decoupling the protocol details from the I/O layer, such that users only need to implement code to stream data in and out of it without needing to know anything about how the protocol actually works. Think of it as a complete WebSocket system with pluggable I/O.
Security Fix(es):
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.1, draft versions of the WebSocket protocol in websocket-driver include a length header that allows an arbitrarily large integer to be encoded as bytes with the high bit set, and a server or client can send an indefinite sequence of 0x80 or higher bytes that the peer parses into an ever-growing Ruby integer. This can make a WebSocket connection consume an unbounded amount of memory and lead to the host process running out of memory. This issue is fixed in version 0.8.1.(CVE-2026-54463)
Impact
If this library is used in tandem with the permessage-deflate extension, a
WebSocket server or client can be made to accept messages that are larger than
the configured maximum message size. This is because this limit is checked
against the message frames' length headers, which give the size of the
compressed data, not the size after decompression. This can lead to applications
accepting larger messages than expected and exceeding their intended resource
usage.
Patches
The issue has been patched in version 0.8.1, by checking the length of messages after they are processed by incoming extensions. 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.(CVE-2026-54464)
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.1, when websocket-driver is used to implement a WebSocket server on top of a TCP server using WebSocket::Driver.server() or to complement a WebSocket client, 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. This issue is fixed in version 0.8.1.(CVE-2026-54465)
There is insufficient input validation when websocket-driver-ruby handles WebSocket frames. An attacker may cause a denial of service (DoS) or unexpected behavior by constructing malicious packets. Please refer to the official security advisory for specific impacts.(CVE-2026-61666)
- Record
OESA-2026-3218- CVSS 4.0
- 8.9 High
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 - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-61666
8.9
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.8.2, WebSocket::Driver.server() passes a malformed Host header to URI.parse in lib/websocket/http/request.rb without catching URI::InvalidURIError, allowing a remote client to crash a TCP-backed WebSocket server when the application does not catch the error from parse(). This issue is fixed in version 0.8.2.
- Record
UBUNTU-CVE-2026-61666- CVSS 4.0
- 8.9 High
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 - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
websocket-driverRubyGems |
before 0.8.2 | 0.8.2 |
ruby-websocket-driverDebian:12 |
All versions, plus listed versions 0.6.3-30.8.0-10.8.1-10.8.2-1 |
None known |
ruby-websocket-driverDebian:13 |
All versions, plus listed versions 0.6.3-30.8.0-10.8.1-10.8.2-1 |
None known |
ruby-websocket-driverDebian:14 |
before 0.8.2-1, plus listed versions 0.6.3-30.8.0-10.8.1-1 |
0.8.2-1 |
websocket-driverRubyGems |
before 0.8.2, plus listed versions 0.1.00.2.00.2.10.2.20.2.3 Show 28 moreShow less0.3.00.3.10.3.20.3.30.3.40.3.50.4.00.5.00.5.10.5.20.5.30.5.40.6.00.6.10.6.20.6.30.6.40.6.50.7.00.7.10.7.20.7.30.7.40.7.50.7.60.7.70.8.00.8.1 |
0.8.2 |
rubygem-websocket-driveropenEuler:20.03-LTS-SP4 From an advisory covering 4 CVEs |
before 0.6.5-2.oe2003sp4 | 0.6.5-2.oe2003sp4 |
rubygem-websocket-driveropenEuler:22.03-LTS-SP4 From an advisory covering 4 CVEs |
before 0.6.5-2.oe2203sp4 | 0.6.5-2.oe2203sp4 |
rubygem-websocket-driveropenEuler:24.03-LTS-SP1 From an advisory covering 4 CVEs |
before 0.7.6-2.oe2403sp1 | 0.7.6-2.oe2403sp1 |
rubygem-websocket-driveropenEuler:24.03-LTS-SP3 From an advisory covering 4 CVEs |
before 0.7.6-2.oe2403sp3 | 0.7.6-2.oe2403sp3 |
rubygem-websocket-driveropenEuler:24.03-LTS-SP4 From an advisory covering 4 CVEs |
before 0.7.6-2.oe2403sp4 | 0.7.6-2.oe2403sp4 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
ruby-websocket-driverUbuntu:16.04:LTS |
All versions, plus listed versions 0.6.3-10.6.3-1build10.6.3-20.6.3-2build1 |
None known |
ruby-websocket-driverUbuntu:18.04:LTS |
All versions, plus listed versions 0.6.3-2build10.6.3-2build20.6.3-2build3 |
None known |
ruby-websocket-driverUbuntu:20.04:LTS |
All versions, plus listed versions 0.6.3-2build30.6.3-2build4 |
None known |
ruby-websocket-driverUbuntu:22.04:LTS |
All versions, plus listed versions 0.6.3-3build10.6.3-3build20.6.3-3build3 |
None known |
ruby-websocket-driverUbuntu:24.04:LTS |
All versions, plus listed versions 0.6.3-3build50.6.3-3build60.6.3-3build7 |
None known |
ruby-websocket-driverUbuntu:26.10 |
All versions, plus listed versions 0.6.3-3ubuntu10.8.2-1 |
None known |
ruby-websocket-driverUbuntu:26.04:LTS |
All versions, plus listed versions 0.6.3-3ubuntu1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| references | GitHub Advisories, OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-61666 is a high vulnerability (CVSS 8.9) in Faye Websocket-driver-ruby, published July 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 38th percentile. Fixed in websocket-driver 0.8.2.
References
github.com/faye/websocket-driver-ruby/security/advisories/GHSA-2x63-gw47-w4mm
github.com/faye/websocket-driver-ruby/commit/7d6fd87759a2fdc83590d3b49ffa661dc53fa128
nvd.nist.gov/vuln/detail/CVE-2026-61666
github.com/rubysec/ruby-advisory-db/blob/a58f1d0a3343e85cef597970f2c5458dcfbaf909/gems/websocket-driver/CVE-2026-61666.yml
github.com/advisories/GHSA-2x63-gw47-w4mm
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61666.json
Show 8 moreShow less
security-tracker.debian.org/tracker/CVE-2026-61666
github.com/faye/websocket-driver-ruby
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3218
nvd.nist.gov/vuln/detail/CVE-2026-54463
nvd.nist.gov/vuln/detail/CVE-2026-54464
nvd.nist.gov/vuln/detail/CVE-2026-54465
ubuntu.com/security/CVE-2026-61666
cve.org/CVERecord?id=CVE-2026-61666