PatchPilot: remediate CVEs#8
Closed
moolen wants to merge 1 commit into
Closed
Conversation
Owner
Author
Agent Log AssetsNetwork Audit
|
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-only)
Outcome: No further fixes applied in this rollout — audit-only; repository files were not modified (except this output). Human intervention is required to implement and release an updated image.
Evidence: image build path
ghcr.io/moolen/logistis:v0.1.1(120 scanner findings).Dockerfile(ARG BASEIMAGE=golang:1.19,ARG RUNIMAGE=alpine:3.14, runtimeapk add curl)..github/workflows/ci.ymlrunsdocker/build-push-actionwithcontext: .and pushesghcr.io/moolen/logistis:<version>— matches the scanned image.DOCKERFILE := Dockerfilefor local builds..github/workflows/release.ymlpromotes:mainto tag and builds kubectl-blame withgoversion: ...go1.19.1...— same stale toolchain surface outside the container.Recommended remediation (safest effective path)
golang:1.19with a current patch in the same image family (e.g.golang:<ver>-alpine3.xx). Pick the minimum Go version that satisfies the highest fixed-version bar across reported stdlib CVEs (several 2025–2026 advisories call for ≥1.26.1 or ≥1.25.8 depending on CVE). Do not guess tags: list tags from the registry (e.g. Docker Hub /crane/ registry API) forgolangwithin the desired1.26.*-alpine*(or chosen line) and select a published tag.RUNIMAGEfromalpine:3.14to a supported Alpine that ships non-vulnerablecurl/libcurland OpenSSL (current Alpine uses OpenSSL 3.x; findings referencelibcrypto1.1/libssl1.1from 3.14). Pinapk addto explicit package versions that close the listed curl CVEs, or use a base where default packages are already patched.go.mod): Raisegoto match the builder; rungo get/go mod tidyto bring indirect deps to at least:golang.org/x/net≥0.38.0 (stricter GHSA ceiling in the set),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, plus any other indirect bumps required for compatibility. Refreshgo.sum; rungovulncheck ./...after.goversiontarball URL inrelease.ymlto the same major.minor.patch as the Docker build, or switch to a maintained setup-go pattern, so shipped binaries are not rebuilt on vulnerable Go.go build ./...,go test ./..., multi-arch image build as in CI, then rescan the pushed image.Actions taken (this run)
.patchpilot/input/cve-remediation.jsonand reviewedDockerfile,go.mod,.github/workflows/ci.yml,.github/workflows/release.yml, andMakefile.Dockerfile,go.mod, workflows, or dependencies (audit-only constraint).Validation steps performed
go build,go test, orgovulncheckexecuted (no remediation diff to validate).Fixed findings
Unresolved findings (still not fixed)
Scanner reported 120 rows; many share the same CVE across paired packages (e.g.
curl/libcurl,libcrypto1.1/libssl1.1). Below is a deduplicated summary by package / surface (full per-row enumeration would repeat the same CVE IDs many times forstdlib).stdlibDockerfile(BASEIMAGE=golang:1.19),go.mod(go 1.19),.github/workflows/release.yml(Go 1.19.1 tarball)libcrypto1.1,libssl1.1Dockerfile(RUNIMAGE=alpine:3.14)curl,libcurlDockerfile(apk add curlon Alpine 3.14)golang.org/x/netgo.mod(indirect)go mod tidy).google.golang.org/protobufgo.mod(indirect)github.com/golang/gloggo.mod(indirect)golang.org/x/textgo.mod(indirect)github.com/sirupsen/logrusgo.mod(direct)Notes
Dockerfileandci.ymlpush toghcr.io/moolen/logistis;go.modversions match scanner-reported module versions.govulncheckcould not be used to pin an exactgolang:*-alpine*tag; the operator must list tags from the registry and pick a compliant patch. The finding set is large but dominated by stdlib + old Alpine — a coordinated Go + Alpine bump addresses most rows.jq/pythonin the environment for automated dedupe; direct access todocker/crane/registry APIs to enumerate candidate base image tags; post-change image rescan results to confirm closure.Human intervention requested by agent: true
Network Audit
proxyauditapi2.cursor.shattempts=13 result=allowed port=443 seen=connectlocalhostattempts=5 result=upstream_error port=80 seen=http error="dial tcp [::1]:80: connect: connection refused"repo42.cursor.shattempts=13 result=allowed port=443 seen=connectAgent Logs
cve-remediation stdout