Skip to content

Refresh vulnerable development dependencies while retaining Node 20 support #17

Closed

Description

@TechLuddite

October 10, 2026 audit

npm audit --json reports seven affected package names: two critical, four high and one moderate. All are development dependencies; npm audit --omit=dev --json reports zero production vulnerabilities.

Vitest 3.2.7 pulls vulnerable tinypool 1.1.1 and @vitest/mocker 3.2.7. Other affected transitive packages include brace-expansion, js-yaml, nanoid and source-map-js. These advisory ratings do not establish exploitability of the deployed static app.

Acceptance criteria

  • Refresh compatible lockfile patches and migrate Vitest to a patched supported release.
  • Evaluate Vitest 4.1.11 or newer compatible release: the reviewed version removes tinypool and patches mocker, while supporting Node 20 and Vite 6.
  • Avoid blindly applying npm's suggested Vitest 5 major upgrade, which requires Node 22.12+ and conflicts with the declared >=20 engine.
  • Run npm ci, npm run check, npm run test:browser and npm audit. Resolve or explicitly assess remaining advisories.

References: GHSA-82fw-gwwq-j7x9 and GHSA-85c8-ppgw-ccpr .

Additional S5 scanner report supplied by the maintainer

S5 reports six high and two medium entries (ratings/grouping differ from npm audit):

Package/version S5 severity Advisory IDs
brace-expansion 5.0.9 high GHSA-6j4f-fj2g-mc7p, GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7
brace-expansion 1.1.18 high GHSA-6j4f-fj2g-mc7p, GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7
js-yaml 4.3.1 high GHSA-2883-xcg3-v3hh
nanoid 3.3.16 high GHSA-2v37-7h3g-55p8
source-map-js 1.2.1 high GHSA-68fv-2mgg-jv7q
tinypool 1.1.1 high GHSA-5gmw-xhrv-c9v3, GHSA-85c8-ppgw-ccpr
@vitest/mocker 3.2.7 medium GHSA-82fw-gwwq-j7x9
vitest 3.2.7 medium GHSA-82fw-gwwq-j7x9

S5 read one lockfile and 407 unique package versions. Lack of OpenSSF Scorecard coverage was informational, not a failure. The fix is being prepared separately on review/dependency-refresh so dependency validation is independent of the UI work in #20.

Activity

  1. TechLuddite commented on Oct 11, 2026

    @TechLuddite
    OwnerAuthor

    All supplied advisory ranges are addressed in draft PR #21: #21 . Vitest/@vitest/mocker are 4.1.11; tinypool is removed; brace-expansion is 1.1.21/5.0.12; js-yaml is 4.3.2; nanoid is 3.3.20; source-map-js is 1.2.2. Checked GitHub advisory affected-version ranges independently. Node 20.20.2 clean install/check/build pass; a combined checkout with #20 passes 356 unit tests and browser regressions. npm audit reports zero vulnerabilities. This issue remains open until the fix is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions