fix(deps): update dependency ws to v7 [security]#426
Conversation
📝 WalkthroughWalkthrough
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes 🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #426 +/- ##
===========================
===========================
🚀 New features to boost your workflow:
|
74233d7 to
b1eee51
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
package.json (1)
2947-2950: 🔒 Security & Privacy | 🔴 CriticalUpdate ws overrides to v8.21.0 to patch DoS vulnerability (GHSA-96hv-2xvq-fx4p).
Both
@deepnote/runtime-coreand@jupyterlab/filebrowseroverride ws to v8.20.1, which is vulnerable to memory exhaustion DoS from tiny fragments and data chunks (CVSS 7.5). The fix is available in v8.21.0. Update both overrides to v8.21.0.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` around lines 2947 - 2950, The ws package override versions for both "`@deepnote/runtime-core`" and "`@jupyterlab/filebrowser`" are set to 8.20.1, which contains a DoS vulnerability. Update the "ws" version string from "8.20.1" to "8.21.0" for both "`@deepnote/runtime-core`" ws override and "`@jupyterlab/filebrowser`" ws override to apply the security patch.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 2772: Update the ws package version specifications to address
CVE-2026-48779 vulnerabilities. Change the ws dependency version range from
^7.0.0 to ^7.5.11 to ensure the vulnerable versions 7.0.0 through 7.5.10 are not
installed. Additionally, locate the two pinned ws version specifications set to
8.20.1 and update both to 8.21.0, which contains the necessary security patch
for this CVE.
---
Outside diff comments:
In `@package.json`:
- Around line 2947-2950: The ws package override versions for both
"`@deepnote/runtime-core`" and "`@jupyterlab/filebrowser`" are set to 8.20.1, which
contains a DoS vulnerability. Update the "ws" version string from "8.20.1" to
"8.21.0" for both "`@deepnote/runtime-core`" ws override and
"`@jupyterlab/filebrowser`" ws override to apply the security patch.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 71439103-1877-44cd-8840-fc612f4f90a0
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (1)
package.json
| "vscode-languageclient": "^9.0.1", | ||
| "vscode-tas-client": "^0.1.84", | ||
| "ws": "^6.2.3", | ||
| "ws": "^7.0.0", |
There was a problem hiding this comment.
🔒 Security & Privacy | 🔴 Critical
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify ws versions and vulnerability status
# Check available ws versions and identify vulnerable ranges
npm view ws versions --json | jq -r '.[]' | grep -E '^(6\.|7\.|8\.)'
# Check for security advisories
gh api graphql -f query='
{
securityVulnerabilities(first: 10, ecosystem: NPM, package: "ws") {
nodes {
advisory {
summary
severity
identifiers { type value }
}
vulnerableVersionRange
firstPatchedVersion { identifier }
}
}
}'Repository: deepnote/vscode-deepnote
Length of output: 3667
Line 2772 uses vulnerable version range; lines 2947 & 2950 require patched ws version.
Setting ws to ^7.0.0 matches 7.0.0 through 7.5.10, all vulnerable to CVE-2026-48779. Use ^7.5.11 instead.
Additionally, lines 2947 and 2950 pin ws to 8.20.1, which is vulnerable to CVE-2026-48779 (fixed in 8.21.0). Update to 8.21.0 per PR objectives.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 2772, Update the ws package version specifications to
address CVE-2026-48779 vulnerabilities. Change the ws dependency version range
from ^7.0.0 to ^7.5.11 to ensure the vulnerable versions 7.0.0 through 7.5.10
are not installed. Additionally, locate the two pinned ws version specifications
set to 8.20.1 and update both to 8.21.0, which contains the necessary security
patch for this CVE.
This PR contains the following updates:
7.5.10→7.5.11^6.2.3→^7.0.0ws: 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)
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).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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.