-
Notifications
You must be signed in to change notification settings - Fork 9
chore(deps): resolve dependency vulnerabilities (2026-08-17) #469
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
tkislan
wants to merge
3
commits into
main
Choose a base branch
from
chore/resolve-dependency-vulnerabilities-2026-08-17
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,18 +1,6 @@ | ||
| { | ||
| "GHSA-848j-6mx2-7j84": { | ||
| "notes": "CVE-2025-14505: elliptic ECDSA signature corruption can lead to private key recovery if attacker obtains both faulty and correct signatures for identical inputs. Accepted risk: dev-only transitive dependency (node-stdlib-browser -> crypto-browserify -> browserify-sign), not used for signing in this project, no fix available.", | ||
| "expiry": "2026-08-15" | ||
| }, | ||
| "GHSA-vpq2-c234-7xj6": { | ||
| "notes": "@tootallnate/once AbortSignal control flow (promise may never settle). The current lockfile still resolves vulnerable transitive copies through @deepnote/sql-language-server -> @google-cloud/bigquery -> teeny-request -> http-proxy-agent@5 -> @tootallnate/once@2.0.0, @vscode/jupyter-ipywidgets8 -> @jupyterlab/filebrowser -> jest-environment-jsdom -> jsdom -> http-proxy-agent@5 -> @tootallnate/once@2.0.0, and @vscode/test-electron -> http-proxy-agent@4.0.1 -> @tootallnate/once@1.1.2. No @tootallnate/once override is currently applied in this repo because we are not forcing a major-version transitive override.", | ||
| "expiry": "2026-08-15" | ||
| }, | ||
| "GHSA-w5hq-g745-h8pq": { | ||
| "notes": "CVE-2026-41907: uuid v3/v5/v6 API methods skip bounds validation when the caller passes an external output buffer (and/or offset), allowing silent partial writes that produce malformed/truncated UUIDs. Accepted risk: all vulnerable transitive copies in the lockfile are uuid@8.3.2 reached via @nteract/commutable, @nteract/messaging, @nteract/types, istanbul-lib-processinfo, and node-notifier. Each call site uses only uuid.v4() (verified by grep in node_modules) — v4 is explicitly listed as unaffected. Bumping these transitive deps to a major-version override (>=11.1.1) is unsafe because @nteract packages declare uuid@^8.0.0 and the API surface differs across majors.", | ||
| "expiry": "2026-08-15" | ||
| }, | ||
| "GHSA-8988-4f7v-96qf": { | ||
| "notes": "@opentelemetry/core unbounded memory allocation in W3C Baggage propagation parsing (moderate). Reached only via @vscode/extension-telemetry@0.7.7 -> applicationinsights@2.5.0 -> @opentelemetry/core@1.10.1. Accepted risk: telemetry is permanently disabled in this extension (isTelemetryDisabled() in src/platform/telemetry/index.ts hard-returns true), so the Baggage propagator is never exercised. No safe transitive override exists: the fix is @opentelemetry/core>=2.8.0, but applicationinsights@2.5.0 and the 1.x @opentelemetry/sdk-trace-base and @opentelemetry/resources still in the tree call symbols removed in otel 2.x (getEnv, DEFAULT_ATTRIBUTE_COUNT_LIMIT, TracesSamplerValues), so forcing core to 2.x breaks them at runtime. The real remediation is upgrading @vscode/extension-telemetry to >=1.5.2 (which drops applicationinsights and @opentelemetry entirely) — a major upgrade deferred to a dedicated change.", | ||
| "expiry": "2026-08-15" | ||
| "notes": "CVE-2025-14505: elliptic's ECDSA signing mis-computes the byte length of the nonce k when k has leading zeros, emitting a truncated signature; an attacker who obtains both a faulty and a correct signature over the same input can recover the private key. Accepted risk: dev-only transitive dependency, absent from the production tree (`npm ls elliptic --omit=dev` is empty). Reached only via node-stdlib-browser@1.3.1 -> crypto-browserify@3.12.1 -> browserify-sign@4.2.5 / create-ecdh@4.0.4 -> elliptic@6.6.1. node-stdlib-browser is a devDependency used exclusively by build/esbuild/build.ts, whose stdlib polyfill plugin is applied only to the web test entry (src/test/web/index.ts -> out/extension.web.bundle.js, excluded from the VSIX by `out/**` in .vscodeignore); the production desktop and web bundles never pull it in, confirmed by the absence of node_modules/elliptic, node_modules/browserify-sign and node_modules/crypto-browserify inputs in dist/*.esbuild.meta.json. No code in this extension performs ECDSA signing. No override is possible: every published elliptic release is affected (range <=6.6.1, and 6.6.1 is the latest version on npm, published 2024-11-13), GitHub lists no patched version, and npm audit reports fixAvailable:false. The real remediation is an upstream elliptic release, or dropping node-stdlib-browser from the web test bundle in favour of native browser crypto.", | ||
| "expiry": "2026-09-17" | ||
| } | ||
| } | ||
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: deepnote/vscode-deepnote
Length of output: 4823
🌐 Web query:
GitHub advisory GHSA-848j-6mx2-7j84 patched upstream version elliptic CVE-2025-14505 npm override transitive dependency documentation💡 Result:
CVE-2025-14505 (tracked as GHSA-848j-6mx2-7j84) is a cryptographic vulnerability in the npm package elliptic (all versions <= 6.6.1) [1][2][3]. It stems from an incorrect calculation of the byte-length of 'k' during ECDSA signature generation, which leads to truncation when 'k' has leading zeros [1][4]. This can produce invalid signatures and, under specific conditions, allow an attacker to derive the secret signing key [1][5]. As of August 18, 2026, there is no official patched version published by the upstream elliptic maintainers [6][7]. While a pull request containing a fix has been identified in the repository [4], it has not been merged or released as a stable version [8]. Consequently, remediation for transitive dependencies must rely on manual intervention [9][10]. To address this vulnerability, you can use the npm overrides field in your package.json to force the use of a patched version or to apply the upstream fix [9][10]. Because no official release exists, many users have adopted the following strategies: 1. Override with an alternative: Some projects have opted to migrate away from elliptic to other libraries, such as
@noble/curves, to mitigate the risk entirely [11]. 2. Manual Patching: You can use tools like patch-package to apply the known upstream fix directly to your node_modules directory, ensuring the fix is reapplied during subsequent installs [4][9]. 3. Dependency Override: If a fork or a specific patched version becomes available (e.g., through third-party support services like HeroDevs) [8], you can force your project to use it by adding the following to your package.json: { "overrides": { "elliptic": "patched-version-or-fork" } } Always verify the fix by running your test suite, as forcing an override can occasionally introduce breaking changes if the parent dependency depends on specific behaviors of the vulnerable version [9][10].Citations:
🏁 Script executed:
sed -n '2915,2945p' package.jsonRepository: deepnote/vscode-deepnote
Length of output: 1082
Use precise override wording.
Replace “No override is possible” with “No patched upstream release is currently available.” npm overrides can point to a patched fork or alternative package.
🤖 Prompt for AI Agents
Source: MCP tools