Update dependency ws to v8 [SECURITY]#15
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
e65afa7 to
21ba204
Compare
21ba204 to
243ce90
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:
^1.0.1→^8.0.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
ReDoS 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).
Release Notes
websockets/ws (ws)
v8.21.0Compare Source
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.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.4Compare Source
Bug fixes
2b2abd4to the 6.x release line (a76e211).v6.2.3Compare Source
Bug fixes
e55e510to the 6.x release line (eeb76d3).v6.2.2Compare Source
Bug fixes
00c425eto the 6.x release line (78c676d).v6.2.1Compare Source
Bug fixes
being set (
aa1dcd5).v6.2.0Compare Source
Features
Bug fixes
Sec-WebSocket-Keyheader fieldvalue is invalid (
160af45).v6.1.4Compare Source
Bug fixes
Hostheader to always include a port (#1510).v6.1.3Compare Source
Bug fixes
being parsed (#1494).
v6.1.2Compare Source
Bug fixes
26436e0).v6.1.1Compare Source
Bug fixes
and the socket closes prematurely (#1464, #1471).
v6.1.0Compare Source
Features
'close'event when the servercloses (#1453).
v6.0.0Compare Source
Breaking changes
d73885c).browser (#1345).
maxPayloadoption on the client. Defaults to 100 MiB (#1402).memLevelandleveloptions. UsezlibDeflateOptionsinstead. (80e2002).v5.2.5Compare Source
Bug fixes
2b2abd4to the 5.x release line (bd8756a).v5.2.4Compare Source
Bug fixes
e55e510to the 5.x release line (4abd8f6).v5.2.3Compare Source
Bug fixes
00c425eto the 5.x release line (76d47c1).v5.2.2Compare Source
Bug fixes
6046a28(8aba871).v5.2.1Compare Source
Bug fixes
certain circumstances (
6046a28).v5.2.0Compare Source
Features
v5.1.1Compare Source
Bug fixes
9e152f9(#1347).v5.1.0Compare Source
Features
addressargument of theWebSocketconstructor can now be aURLinstance (#1329).
optionsargument of theWebSocketconstructor now accepts any TLSoption that is also accepted by
https.request()(#1332).v5.0.0Compare Source
Breaking changes
the client's requested subprotocols (#1312).
net.Socketerrors are no longer re-emitted (a4050db).Features
(#1302).
v4.1.0Compare Source
Features
WebSocketServer.prototype.address()(#1294).zlib{Deflate,Inflate}Optionsoptions (#1306).v4.0.0Compare Source
Breaking changes
no status code (
a31b1f6).695c5ea).onerrorevent handler now receives anErrorEventinstead of JavaScripterror (
63e275e).WebSocket.prototype.ping()andWebSocket.prototype.pong()is no longer a boolean but an optional callback(
30c9f71).protocolVersionandbytesReceivedattributes have beenremoved (
30c9f71...ee9b5f3).extensionsattribute is no longer an object but a string representingthe extensions selected by the server (
fdec524).'headers'event on the client has been renamed to'upgrade'. Listenersof this event now receive only the
responseargument (1c783c2).WebSocket.prototype.pause()andWebSocket.prototype.resume()methodshave been removed to prevent the user from interfering with the state of the
underlying
net.Socketstream (a206e98).v3.3.3Compare Source
Bug fixes
net.Socketerrors are no longer swallowed (beff620).received (
beff620).v3.3.2Compare Source
Bug fixes
Sec-WebSocket-Extensionsheader has been rewritten to makeit spec-compliant (#1240).
v3.3.1Compare Source
Bug fixes
c4fe466).A specially crafted value of the
Sec-WebSocket-Extensionsheader thatused
Object.prototypeproperty names as extension or parameter namescould be used to make a ws server crash.
The vulnerability has been privately reported by Nick Starke and
Ryan Knell of Sonatype Security Research and promptly fixed. Please
update now!
v3.3.0Compare Source
Features
ecdhCurveoption (#1228).v3.2.0Compare Source
Features
v3.1.0Compare Source
Features
Bug fixes
CloseEvent#wasCleanwas incorrectly set tofalseforclose codes in the 3000-4999 range (#1146).
v3.0.0Compare Source
Breaking changes
upgradeReqproperty (#1099).flagsargument from the'message','ping', and'pong'events (#1101).
(#1107).
v2.3.1Compare Source
Bug fixes
WebSocket.prototype.close()from workingproperly when called from a listener of the
headersevent (732aaf0).v2.3.0Compare Source
Features
WebSocketclient now emits aheadersevent (#1082).v2.2.3Compare Source
Notable changes
Bug fixes
optionsargument to be reassigned whenprotocolswasnull(20bd7c7).v2.2.2Compare Source
Bug fixes
v2.2.1Compare Source
Bug fixes
WebSocket.prototype.terminate()now closes the connection immediately evenif the other peer fails to work properly (#1033).
v2.2.0Compare Source
Features
binaryTypeattribute (#1018).Bug fixes
5edb460).v2.1.0Compare Source
Features
060b275).Bug fixes
synchronously on the socket while parsing data ([
6695bd4](https://redirect.github.com/websockets/ws/cConfiguration
📅 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.