Skip to content

fix(deps): clear high-severity npm audit advisories blocking every open PR - #1165

Merged
WimvandenHeijkant merged 1 commit into
mainfrom
bugfixes/npm-audit-high-advisories
Sep 8, 2026
Merged

fix(deps): clear high-severity npm audit advisories blocking every open PR#1165
WimvandenHeijkant merged 1 commit into
mainfrom
bugfixes/npm-audit-high-advisories

Conversation

@TaekeK

@TaekeK TaekeK commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Refreshes the two package-lock.json files to clear the high-severity advisories that turned the Audit: npm audit gate red on every open PR.

What happened

.github/workflows/pr.yml runs npm audit --audit-level=high over app/ui and app/api. Between 2026-09-02 07:46Z (last passing audit run) and 2026-09-03 09:48Z (first failure), two new high-severity advisories landed against transitive dependencies already pinned in main:

Package Where Advisories
browserslist ≤4.28.6 (had 4.28.2) UI GHSA-c83g-rgw3-j3cx unbounded memory growth → OOM, GHSA-73wf-gq98-2v4g crash / prototype write via untrusted stats
fast-uri 3.0.0–3.1.5 (had 3.1.5) UI and API GHSA-5jgf-p345-68v8, GHSA-jqff-g426-hqxp host confusion; GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf SSRF

No PR changed anything — npm audit queries the advisory database live, so every PR with product changes flipped red simultaneously. Audit: npm audit feeds CI Passed, the required check, so all of them are blocked.

The change

npm audit fix --package-lock-only in both projects. Neither package.json is touched — lockfile-only.

UI (12 packages)browserslist 4.28.2→4.28.9, fast-uri 3.1.5→3.1.7, qs 6.15.1→6.16.0, @humanfs/node 0.16.7→0.16.8, plus caniuse-lite, electron-to-chromium, node-releases, baseline-browser-mapping, update-browserslist-db data bumps.

API (4 packages, 1 removed)fast-uri 3.1.5→3.1.7, qs 6.15.2→6.16.0, side-channel 1.1.0→1.1.1, and the nested typed-rest-client/node_modules/qs@6.15.1 drops out.

Two things worth a second look

typed-rest-client goes 2.3.1 → 2.3.0 in both projects. That downgrade is deliberate, not a resolution accident: 2.3.1 pins qs: "6.15.1" exactly — the vulnerable build — while 2.3.0 declares qs: "^6.14.1" and floats up to the patched 6.16.0. Both satisfy the ~2.3.0 range its only consumer asks for, and that consumer is @stryker-mutator/core (dev-only, mutation testing).

Two moderate advisories are left in placeuuid via exceljs, fixable only with npm audit fix --force, which downgrades exceljs to 3.4.0 (a breaking change to Excel export). They are below the gate's high threshold, so this is a conscious deferral rather than an oversight.

Verification

Run locally against a clean npm ci from the updated lockfiles:

  • npm audit --audit-level=high — passes in both app/ui and app/api
  • UI: 157 test files / 1283 tests pass, coverage thresholds met
  • API: 212 test files / 2676 tests pass, coverage thresholds met
  • node app/desktop/scripts/build-node-launcher.mjs --ui-only (the exact command the Build: Node-launcher UI job runs) succeeds, with all 7 crawler wizard plugins verified in the bundle

Blast radius

This unblocks the 10 open Dependabot PRs whose only failure is this gate (#1090#1100). Three other PRs fail for their own unrelated reasons and still need work after this merges: #1146 (a broken docs cross-link caught by the docs-structure guard), #1089, and #1161.

🤖 Generated with Claude Code

https://claude.ai/code/session_011SDczMFDtCQDzTCkV4SpQr

…kfiles

The `Audit: npm audit` gate (`npm audit --audit-level=high` over app/ui and
app/api) went red on every open PR between 2026-09-02 and 2026-09-03. No PR
changed anything — the advisory database did, and audit queries it live:

  - browserslist <=4.28.6  GHSA-c83g-rgw3-j3cx, GHSA-73wf-gq98-2v4g  (UI)
  - fast-uri 3.0.0-3.1.5   GHSA-5jgf-p345-68v8, GHSA-f65p-4m7j-42xc,
                           GHSA-fph4-wmhf-6fwf, GHSA-jqff-g426-hqxp  (UI+API)

Both are transitive. `npm audit fix --package-lock-only` resolves them without
touching either package.json:

  UI  browserslist 4.28.2->4.28.9, fast-uri 3.1.5->3.1.7, qs 6.15.1->6.16.0,
      @humanfs/node 0.16.7->0.16.8, plus caniuse-lite / electron-to-chromium /
      node-releases / baseline-browser-mapping / update-browserslist-db bumps
  API fast-uri 3.1.5->3.1.7, qs 6.15.2->6.16.0, side-channel 1.1.0->1.1.1

typed-rest-client moves 2.3.1 -> 2.3.0 in both. That is a deliberate downgrade,
not a mistake: 2.3.1 pins `qs: "6.15.1"` exactly (the vulnerable build), while
2.3.0 declares `qs: "^6.14.1"` and floats up to the patched 6.16.0. Both satisfy
the `~2.3.0` range its only consumer (@stryker-mutator/core, dev-only) asks for.

Two moderate advisories remain by choice — uuid via exceljs, fixable only by
`--force`, which downgrades exceljs to 3.4.0. They sit below the gate's high
threshold.

Verified locally: both audit gates pass; UI 157 files / 1283 tests and API
212 files / 2676 tests green with coverage thresholds met; the node-launcher
UI build (the command CI runs) succeeds with all 7 crawler wizard plugins
verified in the bundle.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011SDczMFDtCQDzTCkV4SpQr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants