PatchPilot: remediate CVEs#6
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.
Scope
This audit reviewed moolen/logistis for CVEs reported against published image
ghcr.io/moolen/logistis:v0.1.1(120 scanner rows, 103 unique vulnerability IDs). The rollout was audit-only; noDockerfile,go.mod, workflow, or other repository files were changed.Image build evidence
.github/workflows/ci.ymlbuilds and pushesghcr.io/moolen/logistisusingdocker/build-push-actionwithcontext: .— the relevantDockerfileis at the repository root..github/workflows/release.ymlre-tagsghcr.io/moolen/logistis:mainto the release tag and signs it; it also buildskubectl-blamewith a pinned Go 1.19.1 tarball (goversion), which should stay aligned with thegodirective andBASEIMAGEwhen remediating.Current
DockerfileusesBASEIMAGE=golang:1.19andRUNIMAGE=alpine:3.14, withapk add curlon the runtime stage.go.moddeclaresgo 1.19and pulls outdated indirect modules (e.g.golang.org/x/netpseudo-version from 2022,google.golang.org/protobufv1.28.0). These match the scanner’sgo1.19.1, Alpine 3.14-era curl/OpenSSL 1.1.1, and module versions.Safest remediation plan (for a follow-up non-audit change)
Go toolchain (stdlib): Bump the builder
BASEIMAGEto a supportedgolangtag (stay on the officialgolangimage family). To satisfy the highest fixed-version bars in this report (e.g. CVE-2026-25679, CVE-2026-27139, CVE-2026-27142 → 1.25.8 / 1.26.1), choose a current patch in the 1.26.x line (or 1.25.8+ if staying on 1.25). List tags from the registry and pick an explicit tag — do not guess tag names. Aligngoingo.mod,release.ymlgoversion, and any CI lint tooling (e.g. golangci-lint major compatible with that Go release).Alpine runtime (OpenSSL, curl): Bump
RUNIMAGEto a current Alpine 3.x (same distro family) soapk add curlresolves to OpenSSL 3.x and a modern curl (eliminates 1.1.1q and 7.79.1-r3-class issues). Pincurl(and transitively libcurl/SSL) to specific Alpine package versions that close the listed CVEs once you know the target Alpine release.Go modules: After raising Go, run
go get/go mod tidyto raise at least:golang.org/x/net(multiple GHSAs; highest cited floor 0.38.0 for GHSA-vvgc-356p-c3xw),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 — thengo mod vendoronly if the repo vendors. Rungovulncheck ./...andgo test/go build ./...as validation.Rebuild and re-scan: Push a new image tag and confirm the container scanner clears findings.
Fixed findings
(none — audit-only; repository files were not modified.)
Unfixed findings (full table)
Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(RUNIMAGEAlpine runtime; OpenSSL from base image)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(apk add curlon run stage)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)Dockerfile(BASEIMAGE/ build stage),.github/workflows/release.yml(goversionfor kubectl-blame)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegithub.com/sirupsen/logrus, direct)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/text, indirect)go.mod/go.sum(modulegithub.com/golang/glog, indirect)go.mod/go.sum(modulegoogle.golang.org/protobuf, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)go.mod/go.sum(modulegolang.org/x/net, indirect)Actions taken
.patchpilot/input/cve-remediation.jsonand inspectedDockerfile,go.mod,.github/workflows/ci.yml, and.github/workflows/release.yml.Dockerfilevia CI.go build,govulncheck, or Docker builds (no remediation applied).Outcome
No further fixes possible in this run. Reason: operational constraint audit-only — only
.patchpilot/output.jsonmay be written; human intervention is required to applyDockerfile/go.mod/ workflow updates, list registry tags, rebuild, and re-scan.Validation steps performed
Notes
ghcr.io/moolen/logistisand rootDockerfile;go.modandDockerfileARGS make root causes obvious (Go 1.19 + Alpine 3.14 + old modules).govulncheck/docker buildwould allow a definitive minimal version pin.Human intervention requested by agent: true
Agent Logs
cve-remediation stdout