Fix all 26 npm audit vulnerabilities (1 critical) + align Playwright image - #13
Merged
Conversation
…image npm audit reported 26 vulnerabilities (1 critical, 14 high, 7 moderate, 4 low). All were fixable within existing semver ranges, so package.json is untouched — this is a lockfile-only dependency refresh via `npm audit fix` plus one `npm update minimatch` for a copy the fix pass left behind. Critical: form-data 4.0.2 -> 4.0.6 (predictable multipart boundary, GHSA-fjxv-7rqg-78g4; CRLF injection, GHSA-hmw2-7cc7-3qxx). Notable bumps: axios 1.9.0 -> 1.18.1 (29 advisories incl. SSRF/proto pollution), playwright 1.52.0 -> 1.61.1 (SSL-verification advisory), express 4.21.2 -> 4.22.2 (qs/body-parser/path-to-regexp), undici, ws, bullmq 5.49 -> 5.80, validator/express-validator, uuid, eslint chain. Dockerfile: bump the Playwright base image v1.52.0-jammy -> v1.61.1-jammy to match the bumped library — the image ships the browser builds the library expects, and a version mismatch breaks browser launches in the container. Verified: npm audit clean (0 vulnerabilities); tsc, eslint, all 180 tests pass; openapi:check in sync; Docker image builds; in-container smoke test passed — chromium launches under playwright 1.61.1, app boots against Redis (BullMQ 5.80 queues initialize), /health and /health/ready OK, and POST /api/scrape succeeds on both the browser path and the HTTP path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
npm audit: 26 vulnerabilities — 1 critical, 14 high, 7 moderate, 4 low.The critical is
form-data4.0.2 (predictable multipart boundary GHSA-fjxv-7rqg-78g4, CRLF injection GHSA-hmw2-7cc7-3qxx). The highs cluster onaxios(29 advisories: SSRF via NO_PROXY bypass, prototype-pollution gadgets, DoS),playwright(browser downloads without SSL verification),undici,ws,validator,lodash.Fix
Every advisory was fixable within existing semver ranges — so
package.jsonis untouched and this is a lockfile-only refresh:npm audit fix(25 of 26)npm update minimatchfor the one copy the fix pass left behind (9.0.5 → 9.0.9)Plus one deliberate non-lockfile change: the Dockerfile pins the Playwright base image by version, and the audit bump moved the library to 1.61.1 — with the old
v1.52.0-jammyimage the container would no longer have the browser builds the library looks for, breaking every browser launch. Bumped the image tov1.61.1-jammy(tag verified on MCR) to keep them paired.Verification
npm audit→ 0 vulnerabilitiestsc✅ ·eslint✅ · 180/180 tests ✅ ·openapi:checkin sync ✅/healthUP,/health/readyREADYPOST /api/scrapesucceeds on both the browser path and the HTTP (axios) path🤖 Generated with Claude Code