Every CVE Search/ Get API key

CVE-2026-61666

websocket-driver: Denial of service via malformed Host header

8.9 HighFix available

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

0.45%Up 0.1 points since Aug 18, 2026
90%50%10%1%

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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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

Affected packages
PackageAffectedFixed
websocket-driver
RubyGems
before 0.8.2
0.8.2
ruby-websocket-driver
Debian:12
All versions, plus listed versions
0.6.3-30.8.0-10.8.1-10.8.2-1
None known
ruby-websocket-driver
Debian:13
All versions, plus listed versions
0.6.3-30.8.0-10.8.1-10.8.2-1
None known
ruby-websocket-driver
Debian:14
before 0.8.2-1, plus listed versions
0.6.3-30.8.0-10.8.1-1
0.8.2-1
websocket-driver
RubyGems
before 0.8.2, plus listed versions
0.1.00.2.00.2.10.2.20.2.3
Show 28 moreShow less
0.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-driver
openEuler:20.03-LTS-SP4
From an advisory covering 4 CVEs
before 0.6.5-2.oe2003sp4
0.6.5-2.oe2003sp4
rubygem-websocket-driver
openEuler:22.03-LTS-SP4
From an advisory covering 4 CVEs
before 0.6.5-2.oe2203sp4
0.6.5-2.oe2203sp4
rubygem-websocket-driver
openEuler:24.03-LTS-SP1
From an advisory covering 4 CVEs
before 0.7.6-2.oe2403sp1
0.7.6-2.oe2403sp1
rubygem-websocket-driver
openEuler:24.03-LTS-SP3
From an advisory covering 4 CVEs
before 0.7.6-2.oe2403sp3
0.7.6-2.oe2403sp3
rubygem-websocket-driver
openEuler: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
Affected packages
PackageAffectedFixed
ruby-websocket-driver
Ubuntu: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-driver
Ubuntu:18.04:LTS
All versions, plus listed versions
0.6.3-2build10.6.3-2build20.6.3-2build3
None known
ruby-websocket-driver
Ubuntu:20.04:LTS
All versions, plus listed versions
0.6.3-2build30.6.3-2build4
None known
ruby-websocket-driver
Ubuntu:22.04:LTS
All versions, plus listed versions
0.6.3-3build10.6.3-3build20.6.3-3build3
None known
ruby-websocket-driver
Ubuntu:24.04:LTS
All versions, plus listed versions
0.6.3-3build50.6.3-3build60.6.3-3build7
None known
ruby-websocket-driver
Ubuntu:26.10
All versions, plus listed versions
0.6.3-3ubuntu10.8.2-1
None known
ruby-websocket-driver
Ubuntu:26.04:LTS
All versions, plus listed versions
0.6.3-3ubuntu1
None known

History

History
RecordedChangedSources
affected, facts
referencesGitHub Advisories, OSV
first indexedCVE 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

Show 8 moreShow less
MoveEnter Open