Repository navigation
fix(deps): update dependency ws to v8 [security] - #1821
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
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:
7.5.5→8.17.1ReDoS in Sec-Websocket-Protocol header
CVE-2021-32640 / GHSA-6fc8-4gx4-v693
More information
Details
Impact
A specially crafted value of the
Sec-Websocket-Protocolheader can be used to significantly slow down a ws server.Proof of concept
Patches
The vulnerability was fixed in ws@7.4.6 (websockets/ws@00c425e) and backported to ws@6.2.2 (websockets/ws@78c676d) and ws@5.2.3 (websockets/ws@76d47c1).
Workarounds
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 themaxHeaderSizeoptions.Credits
The vulnerability was responsibly disclosed along with a fix in private by Robert McLaughlin from University of California, Santa Barbara.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
ws 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).
Release Notes
websockets/ws (ws)
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).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, 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.