CVE-2026-54490
MediumCVSS 6.3Exploitation Probability (EPSS)
Low risk18th percentile - higher than 18% of all known CVEs
Summary
The websocket-driver library prior to 0.7.5, when used with the permessage-deflate extension, checks the message size limit against compressed data, not after decompression. This allows accepting messages larger than the configured maximum.
Risk Assessment
An attacker can send seemingly small messages that, after decompression, exceed the limit, leading to memory exhaustion or other resource depletion on the WebSocket server/client.
Recommendation
Upgrade websocket-driver to version 0.7.5. Consider additional application-level limits.
Other vulnerabilities in websocket-driver
See all- CVE-2026-61666High
websocket-driver before version 0.8.2 has a vulnerability in WebSocket::Driver.server() that 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.
- CVE-2026-54466High
The websocket-driver library before version 0.7.5 incorrectly handles the frame length in the WebSocket protocol. By sending an indefinite sequence of bytes with the high bit set, an attacker can cause the server to parse these bytes as an ever-growing integer, leading to precision loss and incorrect payload parsing.
- CVE-2026-54465High
websocket-driver before version 0.8.1 is vulnerable to an attack where sending an HTTP request with an endless list of headers causes unbounded memory consumption in the receiving process.
- CVE-2026-54464Medium
The WebSocket library used with the permessage-deflate extension can accept messages larger than the configured maximum size. The limit is checked against the message frames' length headers, which give the size of compressed data, not the size after decompression.
- CVE-2026-54463High
In the websocket-driver library before version 0.8.1, the length header in the WebSocket protocol allows encoding an arbitrarily large integer as bytes with the high bit set. A server or client can send an indefinite sequence of 0x80 or higher bytes that are parsed into an ever-growing Ruby integer.
Original NVD description (English source)
websocket-driver is a WebSocket protocol handler with pluggable I/O. Prior to 0.7.5, if this library is used 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 because the limit is checked against the message frames' length headers, which give the size of the compressed data, not the size after decompression in lib/websocket/driver/hybi.js. This can lead to applications accepting larger messages than expected and exceeding their intended resource usage. This issue is fixed in version 0.7.5.

