From 23f1d4098c4df3756e50cd8778d89e88add50225 Mon Sep 17 00:00:00 2001 From: "@aaronjmars" <61592645+aaronjmars@users.noreply.github.com> Date: Tue, 12 May 2026 09:47:26 -0400 Subject: [PATCH] fix(security): bump tar + transitive deps via npm audit fix (#222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Detected by Aeon + osv-scanner. Severity: high (runtime tar) / high+moderate (dev deps) Patches 8 of 14 CVEs flagged by osv-scanner — all that can be fixed within current semver ranges via `npm audit fix --package-lock-only`. The remaining 6 are gated on a puppeteer-core/vitest major-version bump (out of scope for this PR). Runtime (shipped to users): - tar 7.5.9 -> 7.5.15 - GHSA-9ppj-qmqm-q256 HIGH: Symlink Path Traversal via Drive-Relative Linkpath - GHSA-qffp-2rhf-9h96 HIGH: Hardlink Path Traversal via Drive-Relative Linkpath - Reachable in js/src/download.ts (extractTar) — the existing filter() rejects absolute paths and "..", but does not inspect linkpath, so a malicious Chromium tarball could write outside the cache dir on Windows. Dev (build-time only): - basic-ftp 5.2.0 -> 5.3.1 (4 HIGH: CRLF injection x2, DoS x2) - ip-address 10.1.0 -> 10.2.0 (1 MOD: XSS in Address6 HTML methods) - postcss 8.5.6 -> 8.5.14 (1 MOD: XSS via unescaped ) Lockfile metadata side-effects (npm-regenerated, not editorial): - name@version block synced from package.json (0.3.23 -> 0.3.28) - devDependencies + peerDependencies version ranges synced to current package.json (the lockfile was stale relative to head package.json) Verification: - `npm test` -> 320 passed / 11 skipped / 0 failed (9 test files) - `npm run typecheck` -> clean - osv-scanner before: 14 CVEs; after: 6 (those 6 need a breaking major-version bump to land — happy to follow up if you want it) Co-authored-by: Aeon --- js/package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/js/package-lock.json b/js/package-lock.json index 895712e..0ac8a40 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -1092,9 +1092,9 @@ "license": "MIT" }, "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.1.tgz", + "integrity": "sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==", "dev": true, "license": "MIT", "engines": { @@ -1685,9 +1685,9 @@ "license": "BSD-3-Clause" }, "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "dev": true, "license": "MIT", "engines": { @@ -2115,9 +2115,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", "dev": true, "funding": [ { @@ -2497,9 +2497,9 @@ } }, "node_modules/tar": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz", - "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==", + "version": "7.5.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.15.tgz", + "integrity": "sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==", "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0",