A specially crafted value of the Sec-Websocket-Protocol header could be used
to significantly slow down a ws server.
for (const length of [1000, 2000, 4000, 8000, 16000, 32000]) {
const value = 'b' + ' '.repeat(length) + 'x';
const start = process.hrtime.bigint();
value.trim().split(/ *, */);
const end = process.hrtime.bigint();
console.log('length = %d, time = %f ns', length, end - start);
}
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=size
and/or the maxHeaderSize options.
7.4.5
Bug fixes
UTF-8 validation is now done even if utf-8-validate is not installed
(23ba6b29).
Fixed an edge case where websocket.close() and websocket.terminate() did
not close the connection (67e25ff5).
7.4.4
Bug fixes
Fixed a bug that could cause the process to crash when using the
permessage-deflate extension (92774377).
7.4.3
Bug fixes
The deflate/inflate stream is now reset instead of reinitialized when context
takeover is disabled (#1840).
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 rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will 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 version` will 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 dependency` will 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](https://github.com/balena-io-experimental/boombeastic/network/alerts).
Bumps ws to 7.4.6 and updates ancestor dependency socket.io. These dependencies need to be updated together.
Updates
ws
from 6.1.4 to 7.4.6Release notes
Sourced from ws's releases.
... (truncated)
Commits
f5297f7
[dist] 7.4.600c425e
[security] Fix ReDoS vulnerability990306d
[lint] Fix prettier error32e3a84
[security] Remove reference to Node Security Project8c914d1
[minor] Fix nitsfc7e27d
[ci] Test on node 16587c201
[ci] Do not test on node 15f672710
[dist] 7.4.567e25ff
[fix] Fix case whereabortHandshake()
does not close the connection23ba6b2
[fix] Make UTF-8 validation work even if utf-8-validate is not installedUpdates
socket.io
from 2.2.0 to 2.5.0Release notes
Sourced from socket.io's releases.
... (truncated)
Changelog
Sourced from socket.io's changelog.
... (truncated)
Commits
baa6804
chore(release): 2.5.0f223178
fix: prevent the socket from joining a room after disconnection226cc16
fix: only set 'connected' to true after middleware execution05e1278
fix: fix race condition in dynamic namespaces22d4bdf
fix: ignore packet received after disconnectiondfded53
chore: update engine.io version to 3.6.0e6b8697
chore(release): 2.4.1a169050
revert: fix(security): do not allow all origins by default873fdc5
chore(release): 2.4.0f78a575
fix(security): do not allow all origins by defaultDependabot 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 rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will 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 version` will 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 dependency` will 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](https://github.com/balena-io-experimental/boombeastic/network/alerts).