fix(deps): adopt patched claircore and re-establish the SSRF verdict - #6448
Conversation
Root moves from claircore v1.5.35 to v1.5.53, outside the affected range of GHSA-698x-9w2p-7vvp (<= 1.5.52), and toolkit v1.2.4 to v1.6.1. The reachability verdict is re-established against root's own dependency graph rather than inherited from desktop: root links 9 claircore packages and none is libindex or a fetcher. The three newly linked packages (internal/filterfs, toolkit/log, toolkit/types) each carry zero transitive net/http dependencies. The desktop-only tripwire is retargeted from a hard-coded package list to the property it protects, so it cannot go stale: root may admit a desktop-audited package only once root actually links it. Fixes #6198
✅MegaLinter analysis: Success✅ Linters with no issuesactionlint, bash-exec, git_diff, hadolint, jscpd, jsonlint, lychee, markdown-table-formatter, markdownlint, prettier, prettier, shellcheck, shfmt, stylelint, syft, trivy-sbom, trufflehog, v8r, v8r, yamllint Notices📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining See detailed reports in MegaLinter artifacts
|
Verification recordCondition 3 (tried and evaluated as a user). This change's user-facing surface is the guard, so
Ablation B is the one that matters for the retarget: I also measured the audit against reality: both modules link exactly the 9 audited packages — The fix itself is confirmed against a live oracle, not reasoned. GitHub's own Dependabot state:
Same advisory, two manifests. GitHub already closed 165 when Ablations restored and the tree verified clean after each. |
@coderabbitai review |
|
✅ Action performedReview finished.
|
📝 WalkthroughWalkthroughThe PR updates indirect dependency versions, including Claircore and its toolkit, and removes the indirect Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Readiness — self-promoting
|

Why
A security advisory against the
claircorelibrary has been open on KSail since 17 July, tracked as#6198 and parked on the belief that no patched release existed. A patched release does exist —
the
desktopmodule has already been running it since 23 July, and its half of the alert closedautomatically at that point. Only the root module was still holding the affected version, so the
alert stayed open with nobody acting on it.
What
Root moves onto the same patched
claircorereleasedesktopalready runs, which takes it outsidethe advisory's affected range and should close the remaining alert.
The repository guards this dependency deliberately: it refuses any version change until the
"can an attacker actually reach this?" verdict is re-established, and it forbids one module from
inheriting another module's verdict. That verdict was re-established against the root module's own
dependency graph — the vulnerable component is still not reachable from KSail — and the guard was
retargeted from a hard-coded list of package names to the property it is actually protecting, so it
cannot quietly go stale the next time this happens.
No product behaviour changes; this is a dependency and its safety guard.
Fixes #6198
Supersedes automation's half-fix: Dependabot proposed the same version bump in #6342 on 23 July
and it has sat open since. A dependency bot can move the version but cannot re-establish the safety
verdict the repo requires alongside it, so that PR could never complete on its own. This delivers
both halves; #6342 becomes redundant once this lands.