Repository navigation
deps(pnpm): pin sprintf-js via workspace override (4/5, unpatchable) - #104
martyy-code wants to merge 1 commit into
Conversation
…4/5) The only remaining Dependabot alert after PRs #101-#103 is GHSA-hp3w-g68c-fv3c on sprintf-js. There is no upstream patch: - firstPatchedVersion is empty in the GitHub Advisory Database - the entire <= 1.1.3 range is vulnerable (1.1.3 is the published latest, also the unpatched latest) Path of the transitive: js-yaml@3.14.2 -> read-yaml-file -> @manypkg/get-packages -> @changesets/cli (devDependency only, release tooling, never loaded by the published @deessejs/errors runtime). Action: add an explicit overrides block in pnpm-workspace.yaml (using pnpm 10's modern location, not the deprecated pnpm.overrides in package.json). pnpm-lock.yaml gets a corresponding 'overrides: sprintf-js: ^1.1.3' section. Companion manual step (out of band): a maintainer with triage permission dismisses the alert with reason 'Won't fix -- no patched version; package is in maintenance-only mode and only used as a devDependency through @changesets/cli'. Validated locally: - pnpm install --no-frozen-lockfile - pnpm build (turbo: 2 successful, ~36s) - pnpm --filter errors test (146/146) - pnpm why sprintf-js -> resolves to 1.1.3 Part of: bulk dependabot cleanup (5 stacked PRs)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Heads-up for reviewers: I dismissed alert GHSA-hp3w-g68c-fv3c via the GitHub GraphQL |
|
Closing this PR without merging. The v1 approach (a The actual fix path is the dismissal that was already performed via the GitHub GraphQL Justification for the dismissal:
For traceability, the audit record lives in the comment thread on this PR and will be re-posted on the dismissal context after the cherry-pick into |
Summary
Fourth of a 5-PR stacked series. After #101, #102, and #103, only one Dependabot alert remains open: GHSA-hp3w-g68c-fv3c on
sprintf-js(severity MODERATE).The advisory covers the entire
<= 1.1.3range and there is no patched version — the package is in maintenance-only mode upstream. This PR therefore documents the unpatchable nature explicitly and adds a pnpm override to fix the resolution.A companion maintainer action (out of band, requires
triagepermission) is to dismiss the alert with reason: Won't fix — no patched version; package is in maintenance-only mode and only used as a devDependency through @changesets/cli (release tooling, not in @deessejs/errors' published code path).Changes
pnpm-workspace.yamloverrides: { sprintf-js: "^1.1.3" }block with rationale commentpnpm-lock.yamloverridessection reflecting the explicit pinWhy an override instead of a manual dismiss-without-PR
The override makes the resolution explicit in version control. Without it, any future contribution that touches
@changesets/clicould implicitly re-resolvesprintf-jsto an older vulnerable version without triggering Dependabot again. With this override:pnpm-workspace.yamland reviewable in code review.<= 1.1.3resolution is deliberate.@changesets/clidep chain.Why pnpm-workspace.yaml, not package.json
Pnpm 10 dropped support for the
pnpm.overridesfield inpackage.json(a runtime warning is printed). The modern location for workspace-level overrides is the top-leveloverrides:key inpnpm-workspace.yaml.Validation
Companion action required
A maintainer with
triagepermission should dismiss alert GHSA-hp3w-g68c-fv3c with the reason stated above. PR creates the technical fence; the dismissal closes the audit.Order in the series