PatchPilot: remediate CVEs#7
Closed
moolen wants to merge 1 commit into
Closed
Conversation
Owner
Author
Agent Log Assets |
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.
CVE remediation audit (no code changes)
This rollout was audit-only: the harness did not apply patches to the repository. The sections below describe the safest remediation plan a follow-up change should implement, and document all scanner findings as not fixed in this run.
Image and build evidence
ghcr.io/moolen/logistis:v0.1.1Dockerfilevia.github/workflows/ci.yml(docker/build-push-action, context.). The Makefiledocker.buildtarget also uses that Dockerfile..github/workflows/release.ymlretagsghcr.io/moolen/logistis:mainto the release tag (it does not rebuild the image from Dockerfile for the tag push job); the published image contents still originate from the Dockerfile/CI build path above.Dockerfile: build stage defaults togolang:1.19; run stage defaults toalpine:3.14withapk add curl. The scanned image matches Go 1.19.1 (stdlib) and Alpine-era curl/OpenSSL versions from that era.Safest remediation plan (recommended for a non-audit follow-up)
BASEIMAGEto a current patch of Go in the same family (e.g. stay on officialgolangimages). Choose a version that satisfies the highest fixed-version requirement across reported stdlib CVEs/GHSAs (several 2025–2026 advisories call for 1.26.1 or 1.25.8 depending on ID; 1.26.1 covers the 1.26.x-line fixes listed). Updatego/toolchainingo.modto match, rungo mod tidy, and adjust.github/workflows/release.ymlgoversionURL so releasedkubectl-blamebinaries use the same Go.RUNIMAGEfromalpine:3.14to a supported Alpine (e.g. 3.19+). List tags from the registry and pick a concrete tag that ships patchedcurl/OpenSSL (do not guess tags). After bump, re-scan; ifapk add curlstill pulls vulnerable versions, pincurl/libcurl(and transitive libs) to specific fixed versions per Alpine security advisories.golang.org/x/netto at least 0.38.0 (per GHSA-vvgc-356p-c3xw among others),google.golang.org/protobuf≥ 1.33.0,github.com/golang/glog≥ 1.2.4,github.com/sirupsen/logrus≥ 1.8.3,golang.org/x/text≥ 0.3.8 (or newer compatible with k8s deps). Re-rungo mod tidyand resolve any API/compat issues fromk8s.io/*upgrades if required.go build ./...,go test ./...,govulncheck ./..., and a fresh image scan on the rebuilt tag.Fixed findings
None. This audit did not modify repository sources.
Findings not remediated in this audit (full table)
Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod(direct)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.go.mod/go.sum(indirect)go mod/ indirect upgrades after Go bump.Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:apk add curlon Alpine)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(run:RUNIMAGE/ Alpine runtime OpenSSL)Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Dockerfile(build:BASEIMAGE),go.mod(godirective),.github/workflows/release.yml(goversion)go.mod+ releasegoversionto a patched stdlib.Actions taken in this rollout
.patchpilot/input/cve-remediation.jsonand reviewedDockerfile,go.mod,.github/workflows/ci.yml,.github/workflows/release.yml, andMakefile.Dockerfilevia CI (not vendored copies).Dockerfile, dependencies, or workflows (audit-only).go build -o /tmp/logistis-test ./cmd/webhooksucceeded on the workspace host (Go 1.26.1); this validates source compiles but does not reflect the vulnerable container toolchain in the scanned image.Outcome
No further fixes possible in this audit-only execution — repository files were intentionally unchanged. Full remediation requires an implementation pass: bump base images from registry-listed tags, pin OS packages if needed, upgrade Go and modules, then re-scan
ghcr.io/moolen/logistis:<new-tag>.Validation steps performed
go.mod).go build -o /tmp/logistis-test ./cmd/webhook(host Go 1.26.1).govulncheck/ image rebuild / registry tag listing (not requested for audit-only; human follow-up should run these after patches).Notes
Dockerfileforghcr.io/moolen/logistis, so the blast radius for image CVEs is well defined.govulncheck/scan pass after changes.docker manifest/ registry tag lists forgolangandalpine, and policy on acceptable major jumps fork8s.io/*deps would make an implementation rollout safer and faster.Human intervention requested by agent: true
Agent Logs
cve-remediation stdout