url-encoder
url-encoder copied to clipboard
Bump ws, socket.io-client and socket.io
Bumps ws, socket.io-client and socket.io. These dependencies needed to be updated together.
Updates ws from 8.11.0 to 8.17.1
Release notes
Sourced from ws's releases.
8.17.1
Bug fixes
- Fixed a DoS vulnerability (#2231).
A request with a number of headers exceeding the[
server.maxHeadersCount][] threshold could be used to crash a ws server.const http = require('http'); const WebSocket = require('ws');const wss = new WebSocket.Server({ port: 0 }, function () { const chars = "!#$%&'*+-.0123456789abcdefghijklmnopqrstuvwxyz^_`|~".split(''); const headers = {}; let count = 0;
for (let i = 0; i < chars.length; i++) { if (count === 2000) break;
for (let j = 0; j < chars.length; j++) { const key = chars[i] + chars[j]; headers[key] = 'x';if (++count === 2000) break; }
}
headers.Connection = 'Upgrade'; headers.Upgrade = 'websocket'; headers['Sec-WebSocket-Key'] = 'dGhlIHNhbXBsZSBub25jZQ=='; headers['Sec-WebSocket-Version'] = '13';
const request = http.request({ headers: headers, host: '127.0.0.1', port: wss.address().port });
request.end(); });
The vulnerability was reported by Ryan LaPointe in websockets/ws#2230.
In vulnerable versions of ws, the issue can be mitigated in the following ways:
- Reduce the maximum allowed length of the request headers using the [
--max-http-header-size=size][] and/or the [maxHeaderSize][] options so that no more headers than theserver.maxHeadersCountlimit can be sent.
... (truncated)
Commits
3c56601[dist] 8.17.1e55e510[security] Fix crash when the Upgrade header cannot be read (#2231)6a00029[test] Increase code coverageddfe4a8[perf] Reduce the amount ofcrypto.randomFillSync()callsb73b118[dist] 8.17.029694a5[test] Use thehighWaterMarkvariable934c9d6[ci] Test on node 221817bac[ci] Do not test on node 2196c9b3d[major] Flip the default value ofallowSynchronousEvents(#2221)e5f32c7[fix] Emit at most one event per event loop iteration (#2218)- Additional commits viewable in compare view
Updates socket.io-client from 4.6.1 to 4.8.1
Release notes
Sourced from socket.io-client's releases.
[email protected]
Bug Fixes
- bundle: do not mangle the "_placeholder" attribute (ca9e994)
Dependencies
engine.io-client@~6.6.1(no change)ws@~8.17.1(no change)[email protected]
Features
Custom transport implementations
The
transportsoption now accepts an array of transport implementations:import { io } from "socket.io-client"; import { XHR, WebSocket } from "engine.io-client";const socket = io({ transports: [XHR, WebSocket] });
Here is the list of provided implementations:
Transport Description FetchHTTP long-polling based on the built-in fetch()method.NodeXHRHTTP long-polling based on the XMLHttpRequestobject provided by thexmlhttprequest-sslpackage.XHRHTTP long-polling based on the built-in XMLHttpRequestobject.NodeWebSocketWebSocket transport based on the WebSocketobject provided by thewspackage.WebSocketWebSocket transport based on the built-in WebSocketobject.WebTransportWebTransport transport based on the built-in WebTransportobject.Usage:
Transport browser Node.js Deno Bun Fetch:white_check_mark: :white_check_mark: (1) :white_check_mark: :white_check_mark: NodeXHR:white_check_mark: :white_check_mark: :white_check_mark: XHR:white_check_mark: NodeWebSocket:white_check_mark: :white_check_mark: :white_check_mark: WebSocket:white_check_mark: :white_check_mark: (2) :white_check_mark: :white_check_mark: WebTransport:white_check_mark: :white_check_mark: (1) since v18.0.0
... (truncated)
Commits
8d5528achore(release): [email protected]71387e5refactor(sio-client): reexport transports from the engineaead835refactor(sio): make Namespace._fns private (#5196)029e010chore(release): [email protected]4ca6ddbdocs(nuxt): update example with latest versionca9e994fix(sio-client): do not mangle the "_placeholder" attribute4865f2efix(eio-client): prevent infinite loop with Node.js built-in WebSocketd4b3ddeci: use Node.js 223b68658chore: bump@​fails-components/webtransportto version 1.1.4 (dev)175a2c5fix(eio-client/types): remove ws type from .d.ts file- Additional commits viewable in compare view
Updates socket.io from 4.6.1 to 4.8.1
Release notes
Sourced from socket.io's releases.
[email protected]
Due to a change in the bundler configuration, the production bundle (
socket.io.min.js) did not support sending and receiving binary data in version4.8.0. This is now fixed.Dependencies
engine.io@~6.6.0(no change)ws@~8.17.1(no change)[email protected]
Bug Fixes
- bundle: do not mangle the "_placeholder" attribute (ca9e994)
Dependencies
engine.io-client@~6.6.1(no change)ws@~8.17.1(no change)[email protected]
Features
Custom transport implementations
The
transportsoption now accepts an array of transport implementations:import { io } from "socket.io-client"; import { XHR, WebSocket } from "engine.io-client";const socket = io({ transports: [XHR, WebSocket] });
Here is the list of provided implementations:
Transport Description FetchHTTP long-polling based on the built-in fetch()method.NodeXHRHTTP long-polling based on the XMLHttpRequestobject provided by thexmlhttprequest-sslpackage.XHRHTTP long-polling based on the built-in XMLHttpRequestobject.NodeWebSocketWebSocket transport based on the WebSocketobject provided by thewspackage.WebSocketWebSocket transport based on the built-in WebSocketobject.WebTransportWebTransport transport based on the built-in WebTransportobject.Usage:
Transport browser Node.js Deno Bun
... (truncated)
Commits
91e1c8bchore(release): [email protected]8d5528achore(release): [email protected]71387e5refactor(sio-client): reexport transports from the engineaead835refactor(sio): make Namespace._fns private (#5196)029e010chore(release): [email protected]4ca6ddbdocs(nuxt): update example with latest versionca9e994fix(sio-client): do not mangle the "_placeholder" attribute4865f2efix(eio-client): prevent infinite loop with Node.js built-in WebSocketd4b3ddeci: use Node.js 223b68658chore: bump@​fails-components/webtransportto version 1.1.4 (dev)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.