Repository navigation
fix(update): go-selfupdate from the Giant Swarm line (GO-2026-5932) - #953
Merged
Merged
Conversation
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
govulncheck -mode=binaryreports GO-2026-5932 in every beekeeper release binary (v0.126.0, v0.127.0, v0.127.1-rc.1 alike):golang.org/x/crypto/openpgpis unmaintained with no fixed version, andinternal/updatereaches it throughgithubproxy.fjygbaifeng.eu.org/creativeprojects/go-selfupdatev1.6.0, whosePGPValidatorimports it unconditionally, although beekeeper verifies cosign bundles and never a PGP signature.#931 also states that no CI job runs nancy. That premise is wrong: the architect orb's
go-buildjob runs nancy on every PR and tag (itsgo-testcommand's step "Check if dependencies have known security vulnerabilities", nancy 2.1.0 from the architect 8.6.0 image). The v0.127.0 tag pipeline's go-build job audited 149 dependencies, 0 vulnerable, 0 ignored. nancy reads Sonatype's OSS Index, which carries no Go vulnerability database id, so a.nancy-ignoreentry for GO-2026-5932 would match nothing; the advisory is made to go away instead.Renovate's bump of selfupdate-cosign to v0.3.4 (#887) is red for the same reason: v0.3.4 imports the Giant Swarm go-selfupdate line, and the two module paths meet in
internal/update(cannot use up (*creativeprojects/go-selfupdate.Updater) as *giantswarm/go-selfupdate.Updater value in argument to selfupdatecosign.Install).Root cause
beekeeper imports upstream go-selfupdate directly, while the Giant Swarm CLIs take the
github.com/giantswarm/go-selfupdateline, which carries the one patch upstream holds for its v2 (creativeprojects/go-selfupdate#58):PGPValidatorongithubproxy.fjygbaifeng.eu.org/ProtonMail/go-crypto/openpgp, the maintained fork the advisory recommends.Solution
internal/updateimportsgithubproxy.fjygbaifeng.eu.org/giantswarm/go-selfupdatev1.6.2 andgithubproxy.fjygbaifeng.eu.org/giantswarm/selfupdate-cosignv0.3.4, which imports the same line.go mod tidydropscreativeprojects/go-selfupdateand addsProtonMail/go-cryptov1.4.1 andcloudflare/circlv1.6.3.go list -deps ./...lists nogolang.org/x/crypto/openpgppackage any more. Supersedes #887..nancy-ignore: the five entries matched nothing (pgx is v5.11.0, not the v5.8.0 they name; otlptrace is replaced to v1.46.0, not v1.44.0; goleveldb is no longer in the module graph; the CI summary shows 0 ignored) and are removed. A new finding gets its own time-boxed entry with an issue, as before.Acceptance criteria
govulncheck -mode=binaryon the linux/amd64 binary of the release this merge cuts reports no GO-2026-5932.Closes #931
Written by an agent.