[DO NOT MERGE] test: deliberate dependency regression to exercise the DT gate - #263
[DO NOT MERGE] test: deliberate dependency regression to exercise the DT gate#263tokland wants to merge 2 commits into
Conversation
…e gate Deliberate regression, not for merge. `resolutions.axios: "1.13.5"` carries no explanation in the manifest, so it reads as prunable. Removing it lets axios resolve to four separate vulnerable versions across four consumers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UyMSoPhgMHdJXdAzYBE9aP
Remediation ladder option 1: re-resolve a patched version. All four axios paths collapse to 1.20.0, above the >=1.16.0 advisory floor. Written as a range (^1.16.0) rather than the previous exact pin (1.13.5), which had itself become the cause of ten open high findings. Adds RESOLUTIONS.md so the next reader knows why the entry exists and what would allow removing it. Known pre-existing issue, not introduced here: wait-on@5.3.0 imports axios/lib/adapters/http, which axios >=1.x removed from "exports". It fails with ERR_PACKAGE_PATH_NOT_EXPORTED on the base branch too, under the old 1.13.5 pin. Recorded rather than fixed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UyMSoPhgMHdJXdAzYBE9aP
Result: the full loop, measured
The gate behaved correctly at both steps, with The part worth taking to the wiki pageThe remediated branch has fewer findings than its own base — 79 vs 107 instances, 32 vs 43 high. The only difference from base is Pre-existing breakage this surfaced (not introduced here)
That is the wiki page's "check the patched release is usable before forcing it" warning happening for real, and it is also the strongest argument in favour of 🤖 Generated with Claude Code |
BundleMonNo change in files bundle size Groups updated (1)
Final result: ✅ View report in BundleMon website ➡️ |
Based on #262 rather than
master, becausemasterhas no Dependency-Track analysis and would make every finding look introduced.The change
One line removed from
package.json:"resolutions": { - "axios": "1.13.5", "glob-parent": "5.1.2",This models the most ordinary way a vulnerability gets reintroduced: an undocumented
resolutionsentry looks prunable, so someone prunes it. Nothing in the manifest said why it was there.Dependency paths after the change
yarn why axios -R:One removed line produces four axios versions across four consumers, all behind the advisory floor. Before the change all four resolved to
1.13.5.Two things this makes concrete for the wiki page:
yarn why -Rprints post-resolution descriptors. On ci(security): enable Dependency-Track scanning #262 it showedaxios@npm:1.13.5 (via npm:1.13.5)and never revealed thatpackage.jsondeclaresaxios: "0.24.0". The declared constraint is only visible by reading the manifest.Expected gate behaviour
Base (#262 head) has been scanned: 107 open alert instances, 3 critical / 43 high. The axios instances there are against
1.13.5. This branch should add new instances against 0.21.4 / 0.24.0 / 0.27.2 / 1.6.4 and fail the gate — this time correctly attributed.Verification
yarn installclean;yarn why axios -Ras above