Update dependency ws to v8 [SECURITY] - #6049
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
BundleMonUnchanged files (4)
No change in files bundle size Final result: ✅ View report in BundleMon website ➡️ |
renovate
Bot
force-pushed
the
renovate/npm-ws-vulnerability
branch
from
July 30, 2026 14:08
905ec39 to
59ffad8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.2.2→8.21.0ws affected by a DoS when handling a request with many HTTP headers
CVE-2024-37890 / GHSA-3h5v-q93c-6h6q
More information
Details
Impact
A request with a number of headers exceeding the
server.maxHeadersCountthreshold could be used to crash a ws server.Proof of concept
Patches
The vulnerability was fixed in ws@8.17.1 (websockets/ws@e55e510) and backported to ws@7.5.10 (websockets/ws@22c2876), ws@6.2.3 (websockets/ws@eeb76d3), and ws@5.2.4 (websockets/ws@4abd8f6).
Workarounds
In vulnerable versions of ws, the issue can be mitigated in the following ways:
--max-http-header-size=sizeand/or themaxHeaderSizeoptions so that no more headers than theserver.maxHeadersCountlimit can be sent.server.maxHeadersCountto0so that no limit is applied.Credits
The vulnerability was reported by Ryan LaPointe in https://github.com/websockets/ws/issues/2230.
References
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
ws: Memory exhaustion DoS from tiny fragments and data chunks
CVE-2026-48779 / GHSA-96hv-2xvq-fx4p
More information
Details
Impact
A high volume of exceptionally small fragments and data chunks can be sent by a peer, with modest network traffic, to force the remote peer into allocating and holding structural wrappers that consume far more memory than the default documented message-size limit, leading to process termination due to OOM.
Proof of concept
Patches
The vulnerability was fixed in ws@8.21.0 (websockets/ws@bca91ad) and backported to ws@7.5.11 (websockets/ws@fd36cd8), ws@6.2.4 (websockets/ws@86d3e8a), and ws@5.2.5 (websockets/ws@b5372ac).
Workarounds
In vulnerable versions, the issue can be mitigated by lowering the value of the
maxPayloadoption if possible.Credits
The vulnerability was responsibly disclosed and fixed by Nadav Magier.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
websockets/ws (ws)
v8.21.0Compare Source
Features
maxBufferedChunksandmaxFragmentsoptions (2b2abd4).Bug fixes
2b2abd4).A high volume of tiny fragments and data chunks could be sent by a peer, using
modest network traffic, to crash a
wsserver or client due to OOM.The vulnerability was responsibly disclosed and fixed by Nadav Magier.
In vulnerable versions, the issue can be mitigated by lowering the value of the
maxPayloadoption if possible.v8.20.1Compare Source
Bug fixes
websocket.close()(
c0327ec).Providing a
TypedArray(e.g.Float32Array) as thereasonargument forwebsocket.close(), rather than the supported string orBuffertypes, causeduninitialized memory to be disclosed to the remote peer.
The issue was privately reported by Nikita Skovoroda.
v8.20.0Compare Source
Features
PerMessageDeflateclass and utilities for theSec-WebSocket-ExtensionsandSec-WebSocket-Protocolheaders (d3503c1).v8.19.0Compare Source
Features
closeTimeoutoption (#2308).Bug fixes
1998485).v8.18.3Compare Source
Bug fixes
Sec-WebSocket-Versionheader was not addedto the HTTP response if the client requested version was either invalid or
unacceptable (#2291).
v8.18.2Compare Source
Bug fixes
exceeded, led to the emission of an inaccurate error and closure of the
connection with an improper close code (#2285).
v8.18.1Compare Source
Bug fixes
make them work when run via CITGM (
021f7b8).v8.18.0Compare Source
Features
Blob(#2229).v8.17.1Compare Source
Bug fixes
A request with a number of headers exceeding the
server.maxHeadersCountthreshold could be used to crash a ws server.
The vulnerability was reported by Ryan LaPointe in #2230.
In vulnerable versions of ws, the issue can be mitigated in the following ways:
--max-http-header-size=sizeand/or themaxHeaderSizeoptions sothat no more headers than the
server.maxHeadersCountlimit can be sent.server.maxHeadersCountto0so that no limit is applied.v8.17.0Compare Source
Features
WebSocketconstructor now accepts thecreateConnectionoption (#2219).Other notable changes
allowSynchronousEventsoption has been changed totrue(#2221).This is a breaking change in a patch release. The assumption is that the option
is not widely used.
v8.16.0Compare Source
Features
autoPongoption (01ba54e).v8.15.1Compare Source
Notable changes
allowMultipleEventsPerMicrotaskoption has been renamed toallowSynchronousEvents(4ed7fe5).This is a breaking change in a patch release that could have been avoided with
an alias, but the renamed option was added only 3 days ago, so hopefully it
hasn't already been widely used.
v8.15.0Compare Source
Features
allowMultipleEventsPerMicrotaskoption (93e3552).v8.14.2Compare Source
Bug fixes
swallowed when running tests (
7f4e1a7).v8.14.1Compare Source
Bug fixes
fd3c64c).v8.14.0Compare Source
Features
WebSocketconstructor now accepts HTTP(S) URLs (#2162).socketargument ofserver.handleUpgrade()can now be a genericDuplexstream (#2165).Other notable changes
v8.13.0Compare Source
Features
finishRequestoption to support late addition of headers (#2123).v8.12.1Compare Source
Bug fixes
browsercondition to package.json (#2118).v8.12.0Compare Source
Features
utf-8-validate@6(ff63bba).Other notable changes
buffer.isUtf8()is now used instead ofutf-8-validateif available(
42d79f6).v8.11.0Compare Source
Features
WebSocket.prototype.addEventListener()now supports an event listenerspecified as an object with a
handleEvent()method. (9ab743a).Bug fixes
WebSocket.prototype.addEventListener()now adds an event listener only if itis not already in the list of the event listeners for the specified event type
(
1cec17d).v8.10.0Compare Source
Features
211d5d3).v8.9.0Compare Source
Features
v8.8.1Compare Source
Bug fixes
AuthorizationandCookieheaders are no longer sent if the originalrequest for the opening handshake is sent to an IPC server and the client is
redirected to another IPC server (
bc8bd34).v8.8.0Compare Source
Features
WS_NO_BUFFER_UTILandWS_NO_UTF_8_VALIDATEenvironmentvariables (
becf237).v8.7.0Compare Source
Features
them with a custom HTTP response. (
6e5a5ce).Bug fixes
Upgradeheader field value in the HTTPresponse is not a case-insensitive match for the value "websocket" (
0fdcc0a).AuthorizationandCookieheaders are no longer sent when following aninsecure redirect (wss: to ws:) to the same host (
d68ba9e).v8.6.0Compare Source
Features
v8.5.0Compare Source
Features
WebSocketclass on the server (#2007).Bug fixes
AuthorizationandCookieheaders are nolonger sent if the redirect host is different from the original host (#2013).
v8.4.2Compare Source
Bug fixes
v8.4.1Compare Source
Notable changes
websocket.ping(),websocket.pong(), andwebsocket.send()are no longer converted toBuffers if the data does not need to be masked (#2000).v8.4.0Compare Source
Features
v8.3.0Compare Source
Features
WebSocket(0a8c7a9).Bug fixes
using the stream API (
ed2b803).redirect URL is invalid (#1980).
v8.2.3Compare Source
Bug fixes
is below the value of the
perMessageDeflate.thresholdoption (41ae563).v8.2.2Compare Source
Bug fixes
ec9377c).v8.2.1Compare Source
Bug fixes
from being closed cleanly (
869c989).v8.2.0Compare Source
Features
WebSocket.WebSocketas an alias forWebSocketandWebSocket.WebSocketServeras an alias forWebSocket.Serverto fix nameconsistency and improve interoperability with the ES module wrapper (#1935).
v8.1.0Compare Source
Features
Bug fixes
6a72da3).c95e695).v8.0.0Compare Source
Breaking changes
The
WebSocketconstructor now throws aSyntaxErrorif any of thesubprotocol names are invalid or duplicated (
0aecf0c).The server now aborts the opening handshake if an invalid
Sec-WebSocket-Protocolheader field value is received (1877dde).The
protocolsargument ofhandleProtocolshook is no longer anArraybuta
Set(1877dde).The opening handshake is now aborted if the
Sec-WebSocket-Extensionsheaderfield value is empty or it begins or ends with a white space (
e814110).Dropped support for Node.js < 10.0.0 (
552b506).The
WebSocketconstructor now throws aSyntaxErrorif the connection URLcontains a fragment identifier or if the URL's protocol is not one of
'ws:','wss:', or'ws+unix:'(ebea038).Text messages and close reasons are no longer decoded to strings. They are
passed as
Buffers to the listeners of their respective events. The listenersof the
'message'event now take a boolean argument specifying whether or notthe message is binary (
e173423).Existing code can be migrated by decoding the buffer explicitly.
The package now uses an ES module wrapper (
78adf5f).WebSocketServer.prototype.close()no longer closes existing connections(
df7de57).Existing code can be migrated by closing the connections manually.
The callback of
WebSocketServer.prototype.close()is now called with anerror if the server is already closed (
abde9cf).WebSocket.prototype.addEventListener()is now a noop if thetypeargumentis not one of
'close','error','message', or'open'(9558ed1).WebSocket.prototype.removeEventListener()now only removes listeners addedwith
WebSocket.prototype.addEventListener()and only one at time (ea95d9c).The value of the
onclose,onerror,onmessage, andonopenproperties isnow
nullif the respective event handler is not set (6756cf5).The
OpenEventclass has been removed (21e6500).Bug fixes
event listeners added with
WebSocket.prototype.addEventListener()(
0b21c03).v7.5.13Compare Source
Bug fixes
from resetting (
18bcb11).v7.5.12Compare Source
Bug fixes
a2f4e7candf197ac6to the v7.x release line (fb8a193,deec211).v7.5.11Compare Source
Bug fixes
2b2abd4to the 7.x release line (e14c458).v7.5.10Compare Source
Bug fixes
e55e510to the 7.x release line (22c2876).v7.5.9Compare Source
Bug fixes
bc8bd34to the 7.x release line (0435e6e).v7.5.8Compare Source
Bug fixes
0fdcc0ato the 7.x release line (2758ed3).d68ba9eto the 7.x release line (dc1781b).v7.5.7Compare Source
Bug fixes
6946f5fto the 7.x release line (1f72e2e).v7.5.6Compare Source
Bug fixes
b8186ddto the 7.x release line (73dec34).ed2b803to the 7.x release line (22a26af).v7.5.5Compare Source
Bug fixes
ec9377cto the 7.x release line (0e274ac).v7.5.4Compare Source
Bug fixes
6a72da3to the 7.x release line (76087fb).869c989to the 7.x release line (2799793).v7.5.3Compare Source
Bug fixes
WebSocketServerconstructor now throws an error if more than one of thenoServer,server, andportoptions are specefied (66e58d2).'close'event was emitted by aWebSocketServerbeforethe internal HTTP/S server was actually closed (
5a58730).WebSocketServer.prototype.close()was called (772236a).v7.5.2Compare Source
Bug fixes
Sec-WebSocket-Extensionsheader but no extension was requested or if theserver indicates an extension not requested by the client (
aca94c8).v7.5.1Compare Source
Bug fixes
error occurred simultaneously on both peers (
b434b9f).v7.5.0Compare Source
Features
codeproperty describing the specific type of errorthat has occurred (#1901).
Bug fixes
framing error) occurs (
8806aa9).connection is closed due to an error (
8806aa9).v7.4.6Compare Source
Bug fixes
00c425e).A specially crafted value of the
Sec-Websocket-Protocolheader could be usedto significantly slow down a ws server.
The vulnerability was responsibly disclosed along with a fix in private by
Robert McLaughlin from University of California, Santa Barbara.
In vulnerable versions of ws, the issue can be mitigated by reducing the maximum
allowed length of the request headers using the
--max-http-header-size=sizeand/or the
maxHeaderSizeoptions.v7.4.5Compare Source
Bug fixes
utf-8-validateis not installed(
23ba6b2).websocket.close()andwebsocket.terminate()didnot close the connection (
67e25ff).v7.4.4Compare Source
Bug fixes
permessage-deflate extension (
9277437).v7.4.3Compare Source
Bug fixes
takeover is disabled (#1840).
v7.4.2Compare Source
Bug fixes
a2c0d44).v7.4.1Compare Source
Bug fixes
'error'event bug in Node.js < 13 whichcaused an uncaught error during the WebSocket handshake (
38d6ab3).v7.4.0Compare Source
Features
WebSocketServer.prototype.handleUpgrade()now takes theclient HTTP GET request as second argument (
7d39f19).Bug fixes
eabed8f).CONNECTING,OPEN,CLOSING,CLOSED,binaryType,bufferedAmount,extensions,onclose,onerror,onmessage,onopen,protocol,readyState, andurlproperties are now enumerable (2069e68).v7.3.1Compare Source
Bug fixes
websocket.bufferedAmountaccuracy (e1349c0,a162942).v7.3.0Compare Source
Features
WebSocket.prototype.addEventListener()now supports theonceoption (#1754).v7.2.5Compare Source
Bug fixes
651d662).v7.2.3Compare Source
Bug fixes
WebSocket#{p{i,o}ng,close}()now thow an error if the data to send is toolarge to fit in a control frame (
e54f08d).v7.2.2Compare Source
Bug fixes
webSocketStream.end()could cause the processto crash (
9535702).or a masked frame is received on the client (#1681).
v7.2.1Compare Source
Bug fixes
bufferutilandutf-8-validateas peer dependencies (#1626).v7.2.0Compare Source
Features
readableObjectModeoption when usingWebSocket.createWebSocketStream()(#1647).v7.1.2Compare Source
Bug fixes
(#1618).
v7.1.1Compare Source
Bug fixes
WebSocketserver constructor is usedincorrectly (
3641266).v7.1.0Compare Source
Features
WebSocketin aDuplexstream (#1589).Bug fixes
ifstatement" (dbacf58, #1591).v7.0.1Compare Source
Bug fixes
v7.0.0Compare Source
Breaking changes
1e6999b).url.Urlinstances in theWebSocketconstructor(
692d7b4).WebSocket#{p{i,o}ng,send}()has changed when thereadyStateattribute is notOPEN(#1532)CONNECTING, an exception is thrown.CLOSINGorCLOSEDbufferedAmountattribute is increased by the length of thedataargument in bytes.
callbackfunction is called with an error.callbackfunction is not provided.v6.2.6Compare Source
Bug fixes
from resetting (
899bf9e).v6.2.5Compare Source
Bug fixes
a2f4e7candf197ac6to the v6.x release line (58ddc8c,4f19c0c).v6.2.4Compare Source
Bug fixes
2b2abd4to the 6.x release line (a76e211).v6.2.3Compare Source
Bug fixes
e55e510to the 6.x release line (eeb76d3).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.