Skip to content

Security enhancements - #869

Merged
TwitchBronBron merged 2 commits into
masterfrom
fix/npm-audit-vulnerabilities
Aug 7, 2026
Merged

Security enhancements#869
TwitchBronBron merged 2 commits into
masterfrom
fix/npm-audit-vulnerabilities

Conversation

@TwitchBronBron

Copy link
Copy Markdown
Member

Summary

  • `npm run audit` was reporting 16 vulnerabilities across the root project, plus 1 in the `webviews` subproject
  • Fixed via `overrides`: brace-expansion, js-yaml, @babel/core, fast-uri, body-parser, shell-quote (bumped an existing stale nested override), ip-address, linkify-it, qs, and postcss (webviews) — all either devDependency-only or unreachable code paths in prod deps (postman-request's SOCKS proxy support, @vscode/vsce's bundled markdown renderer)
  • `uuid` intentionally left at `^9.0.1` and stays allowlisted in audit-ci.jsonc: `uuid@11`'s bundled `.d.ts` uses `export type *` syntax requiring TypeScript 5.0+, which breaks this project's build under `typescript@^4.7.4`. Confirmed via build failure when attempted. The vulnerable code path (`v3`/`v5`/`v6` with a caller-provided buffer) is unreachable regardless — every consumer (our own `RokuAppOverlaysViewViewProvider.ts`, postman-request, node-notifier, nyc) only calls `v4()`
  • `ip`/`node-ssdp` stay allowlisted (pre-existing, unchanged): `ip` has no fixed release published at all, and `node-ssdp@4.0.1` (latest) still depends on it. Verified `node-ssdp` is actively used for real Roku device discovery in `RokuFinder.ts`, so no safe fix exists today short of replacing the library

Test plan

  • `npm run audit` passes (root allowlists only the two pre-existing unfixable advisories; webviews reports 0 vulnerabilities)
  • `npm run build` passes (root + webviews)
  • `npm run lint` passes
  • `npm run test` passes (1031 passing; one observed failure was confirmed flaky/pre-existing on rerun, unrelated to this change)

🤖 Generated with Claude Code

Resolves brace-expansion, js-yaml, @babel/core, fast-uri, body-parser,
shell-quote, ip-address, and linkify-it, all pulled in exclusively
through devDependencies or as unreachable code paths in prod
dependencies (postman-request's SOCKS proxy support, @vscode/vsce's
markdown renderer). Also fixes the qs DoS in postman-request directly,
and fixes postcss in the webviews subproject.

uuid stays at ^9.0.1 and remains allowlisted in audit-ci.jsonc:
uuid@11's bundled .d.ts uses `export type *` syntax requiring
TypeScript 5.0+, which breaks this project's build under its current
typescript@^4.7.4. The vulnerable code path (v3/v5/v6 with a
caller-provided buffer) is unreachable here regardless, since every
consumer (our own code, postman-request, node-notifier, nyc) only
calls v4().

ip/node-ssdp remains allowlisted as well: ip has no fixed release at
all, and node-ssdp's latest version still depends on it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@TwitchBronBron TwitchBronBron added the Security enhancements Security-related dependency/vulnerability fixes label Aug 4, 2026
@TwitchBronBron TwitchBronBron changed the title Fix npm audit vulnerabilities via overrides and dependency bumps Security enhancements Aug 5, 2026
@vscode/vsce@3.9.2 (latest) bundles markdown-it@14.2.0, which pins
linkify-it@^5.0.1 and calls `new LinkifyIt(...)`. Forcing
linkify-it@^6.1.0 changed that export's shape and broke
`npm run create-package` with "LinkifyIt is not a constructor" (CI
failure on all three platforms).

No override is needed at all: a fresh install resolves markdown-it's
^5.0.1 range to linkify-it@5.0.2, which is already past the
vulnerable <=5.0.1 range from GHSA-v245-v573-v5vm. Verified
`create-package` succeeds and the full audit still passes with 0
new findings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@TwitchBronBron
TwitchBronBron merged commit 85e7b0d into master Aug 7, 2026
9 checks passed
@TwitchBronBron
TwitchBronBron deleted the fix/npm-audit-vulnerabilities branch August 7, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Security enhancements Security-related dependency/vulnerability fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant