Drop tar-fs / ws npm overrides once pagedjs-cli ships on modern puppeteer #36
JohnRDOrazio
started this conversation in
Maintenance
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Status
Blocked on upstream. Action required when one of the done-when conditions below is met.
Context
PR #35 added two npm
overridestopackage.jsonto clear four high-severity Dependabot alerts:The alerts were on transitive dependencies of the build pipeline:
Dependabot can't fix this on its own because the vulnerable versions are pinned by
puppeteer@^20.x, whichpagedjs-cli@0.4.3requires. The override forces npm to install patched versions across the whole tree regardless of what intermediate packages requested.Why we can't just bump pagedjs-cli
At the time of writing:
0.4.3is the latest stable release.0.5.0-beta.2exists and usespuppeteer@^22.x(which would resolve the chain natively), but is a pre-release.1.0.0-alpha.2exists but uses an olderpuppeteer@^14.x— abandoned alpha, not a forward path.pagedjs/pagedjs-cliGitHub repo has zero releases tagged; the project is in maintenance mode rather than active development.Done-when criteria
Drop the
overridesblock (and regeneratepackage-lock.json) when any of these is true:pagedjs-cliships a stable release (≥0.5.0non-prerelease) whose directpuppeteerdependency is on a version that pulls intar-fs ≥ 3.1.1andws ≥ 8.17.1. Sanity check:npm view pagedjs-cli@<new-version> dependencies | grep puppeteer, thennpm view puppeteer@<that-version> dependenciesfor the chain.pagedjs-clientirely (e.g., switch to a different PDF renderer fornpm run build:pdf).How to remove the overrides
Once a done-when condition is met:
pagedjs-clito the new stable indevDependencies.overridesblock frompackage.json.rm package-lock.json && PUPPETEER_SKIP_DOWNLOAD=true npm install.npm ls tar-fsandnpm ls wsresolve to ≥ patched versions naturally.npm auditreports 0 vulnerabilities.Practical exploitability (for context)
Neither vulnerability is reachable in our actual build/deploy:
PUPPETEER_SKIP_DOWNLOAD: 'true'is set in CI and deploy, sotar-fs(the Chrome-tarball extractor used at install time by@puppeteer/browsers) is never invoked — we use system Chrome viaPUPPETEER_EXECUTABLE_PATH.wsis used as a client to local Chrome's DevTools port, not as a server accepting external traffic — the DoS-via-many-headers attack is on the server side.The overrides are hygiene and audit-cleanliness, not a fix for an active threat. That said, dropping them when upstream catches up is still the cleaner endpoint.
References
tar-fs(3 distinct) andws(DoS via many headers) — see the repo's Security tab for full text.Beta Was this translation helpful? Give feedback.
All reactions