CVE-2026-54463
websocket-driver: Memory exhaustion via abuse of protocol length headers
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.
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
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.9
websocket-driver: Memory exhaustion via abuse of protocol length headers
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.
- Record
CVE-2026-54463- CVSS 4.0
- 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 - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-45310
6.9
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.
- Record
EUVD-2026-45310- CVSS 4.0
- 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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-ghhp-3qvg-889p
6.9
websocket-driver: Memory exhaustion via abuse of protocol length headers
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.
- Record
GHSA-ghhp-3qvg-889p- CVSS 4.0
- 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 - Weakness
- CWE-400, CWE-770
- Updated
- 2026-11-02
NVD
6.9
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.
- Record
CVE-2026-54463- CVSS 4.0
- 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/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 - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
6.9
websocket-driver: Memory exhaustion via abuse of protocol length headers
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.
- Record
CVE-2026-54463- CVSS 4.0
- 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 - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-54463
7.5
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.
- Record
DEBIAN-CVE-2026-54463- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-ghhp-3qvg-889p
6.9
websocket-driver: Memory exhaustion via abuse of protocol length headers
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.
- Record
GHSA-ghhp-3qvg-889p- CVSS 4.0
- 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 - Weakness
- CWE-400, CWE-770
- Updated
- 2026-11-02
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-54463
6.9
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.
- Record
UBUNTU-CVE-2026-54463- CVSS 4.0
- 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 - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
websocket-driverRubyGems |
before 0.8.1 | 0.8.1 |
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.1-1, plus listed versions 0.6.3-30.8.0-1 |
0.8.1-1 |
websocket-driverRubyGems |
before 0.8.1, plus listed versions 0.1.00.2.00.2.10.2.20.2.3 Show 27 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.0 |
0.8.1 |
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 | ||
| 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-54463 is a medium vulnerability (CVSS 6.9) in Faye Websocket-driver, published July 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.49%, the 42nd percentile. Fixed in websocket-driver 0.8.1.
References
github.com/faye/websocket-driver-ruby/security/advisories/GHSA-ghhp-3qvg-889p
github.com/faye/websocket-driver-ruby/commit/d0141f041f6e3677a951255d547a313e732ccbe0
github.com/faye/websocket-driver-ruby/releases/tag/0.8.1
github.com/rubysec/ruby-advisory-db/blob/master/gems/websocket-driver/CVE-2026-54463.yml
cve.org/CVERecord/SearchResults?query=CVE-2026-54463
nvd.nist.gov/vuln/detail/CVE-2026-54463
Show 10 moreShow less
github.com/advisories/GHSA-ghhp-3qvg-889p
github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54463.json
security-tracker.debian.org/tracker/CVE-2026-54463
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-54464
nvd.nist.gov/vuln/detail/CVE-2026-54465
nvd.nist.gov/vuln/detail/CVE-2026-61666
ubuntu.com/security/CVE-2026-54463
cve.org/CVERecord?id=CVE-2026-54463