Skip to content

fix(CI-24677): bump docker dind 28.1.1 to 29.8.0 and cosign v2.5.3 to v2.6.5 - #525

Draft
vinayakharness2026 wants to merge 1 commit into
drone-plugins:masterfrom
vinayakharness2026:fix/CI-24677-vuln-remediation-20260908
Draft

fix(CI-24677): bump docker dind 28.1.1 to 29.8.0 and cosign v2.5.3 to v2.6.5#525
vinayakharness2026 wants to merge 1 commit into
drone-plugins:masterfrom
vinayakharness2026:fix/CI-24677-vuln-remediation-20260908

Conversation

@vinayakharness2026

@vinayakharness2026 vinayakharness2026 commented Sep 8, 2026

Copy link
Copy Markdown

Vulnerability Remediation: harnesssecure/ecr

Team: ci (Harness CI Platform)
Tickets: CI-24677
Test image: vinayakharness/ecr-test:ecr-21.3.5--debug

OnDemand scanner runs (Harness https://harness0.harness.io/):


Summary

All 6 Critical CVEs are resolved (OnDemand/Prisma Cloud scanner: 6 → 0 Critical, 46 → 7 High). The fixes come from three changes: bumping the Docker-in-Docker base from docker:28.1.1-dind to docker:29.8.0-dind (Alpine 3.24.1), upgrading cosign from v2.5.3 to v2.6.5, and bumping the Go builder from golang:1.26.5 to golang:1.26.8 to eliminate stdlib CVEs in the drone-ecr binary. The remaining 7 HIGH issues are in bundled binaries shipped by docker:29.8.0-dind (containerd, runc) whose upstream transitive deps have not yet been updated; these are blocked pending upstream. QA note: docker:29.8.0 is a major version bump from 28.x — deploy to QA and run pipeline sanity before merging.

Recommendation: SHIP — both OnDemand scans completed, Critical reduced to 0, no new Critical/High introduced in the drone-ecr binary layer.


CVE Delta — Trivy (local scan)

Severity Before After Change
Critical 21 1 -20
High 390 37 -353
Medium 405 8 -397
Low 57 5 -52
Total 873 51 -822

CVE Delta — Harness OnDemand (Prisma Cloud)

Severity Before After Change
Critical 6 0 -6
High 46 7 -39
Medium 43 25 -18
Low 7 0 -7
Info 0 0 0
Total 102 32 -70

Per-Ticket CVE Status

CI-24677 — P2: Security Vulnerability Fixes - harnesssecure/ecr

Summary: The published harnesssecure/ecr:21.3.4 image inherits all vulnerabilities from its base plugins/docker:linux-amd64 which in turn is built FROM docker:28.1.1-dind. That dind image shipped with Alpine 3.21.3 (openssl 3.3.3-r0, git 2.47.2-r0, libexpat 2.7.0-r0, zlib 1.3.1-r2) and older bundled Go binaries (containerd built with Go 1.23.8, docker-buildx with crypto v0.37.0). Bumping to docker:29.8.0-dind (Alpine 3.24.1) resolves all OS-level and most bundled binary CVEs. cosign was also upgraded from v2.5.3 to v2.6.5 to fix crypto/grpc CVEs. The golang builder was bumped to 1.26.8 to fix stdlib CVEs in the compiled drone-ecr binary.

CVE Package Before After Required Status Reason
CVE-2025-68121 stdlib (bundled binaries) 1.23.8 / 1.24.3 n/a 1.25.7+ ✅ Resolved docker:29.8.0-dind ships rebuilt binaries
CVE-2026-31789 libcrypto3/libssl3/openssl 3.3.3-r0 n/a (Alpine 3.24.1: 3.5.8-r0) 3.3.7-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2026-33186 google.golang.org/grpc v1.69.4–v1.73.0 n/a 1.79.3+ ✅ Resolved docker:29.8.0-dind ships updated dockerd/buildx/compose
CVE-2026-56854 golang.org/x/crypto v0.37.0–v0.40.0 v0.53.0 (containerd) 0.55.0 ⚠️ Partial containerd in docker:29.8.0-dind has v0.53.0; upstream containerd fix pending
CVE-2025-46334 git 2.47.2-r0 2.54.0-r0 2.47.3-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-48384 git 2.47.2-r0 2.54.0-r0 2.47.3-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-48385 git 2.47.2-r0 2.54.0-r0 2.47.3-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-59375 libexpat 2.7.0-r0 2.8.4-r0 2.7.2-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2026-25210 libexpat 2.7.0-r0 2.8.4-r0 2.7.4-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2026-22184 zlib 1.3.1-r2 1.3.2-r0 1.3.2-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-69421 libcrypto3/libssl3/openssl 3.3.3-r0 3.5.8-r0 3.3.6-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-15467 libcrypto3/libssl3/openssl 3.3.3-r0 3.5.8-r0 3.3.6-r0 ✅ Resolved Alpine 3.24.1 in docker:29.8.0-dind
CVE-2025-66506 github.com/sigstore/fulcio v1.7.1 n/a 1.8.3 ✅ Resolved cosign v2.6.5 ships updated fulcio
CVE-2025-66564 github.com/sigstore/timestamp-authority v1.2.8 n/a 2.0.3 ✅ Resolved cosign v2.6.5 ships updated timestamp-authority
CVE-2026-33818 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-39821 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-56853 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-56858 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-56859 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-56860 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-56862 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8
CVE-2026-46600 stdlib (drone-ecr) v1.26.5 v1.26.8 1.26.6+ ✅ Resolved golang builder bumped to 1.26.8

Changes Made

File Change
docker/docker/Dockerfile.linux.amd64 docker:28.1.1-dinddocker:29.8.0-dind; cosign v2.5.3v2.6.5
docker/docker/Dockerfile.linux.arm64 arm64v8/docker:28.1.1-dindarm64v8/docker:29.8.0-dind; cosign v2.5.3v2.6.5
.harness/harness.yaml golang:1.26.5golang:1.26.8 (6 linux builder occurrences)

Version selection rationale:

  • docker:29.8.0-dind is the minimum docker dind release that ships Alpine 3.24.1 with zlib 1.3.2-r0 (required for CVE-2026-22184). docker:28.5.2-dind uses Alpine 3.22.2 which still has zlib 1.3.1-r2 (unfixed) and libexpat 2.7.3-r0 (still < 2.7.4-r0 needed for CVE-2026-25210). docker:29.8.0-dind is the lowest 29.x release available and fixes all OS-level CVEs.
  • cosign:v2.6.5 is the latest stable 2.x release; same major series as v2.5.3 (minor bump). Fixes golang.org/x/crypto (CVE-2026-56854), google.golang.org/grpc (CVE-2026-33186), sigstore/fulcio (CVE-2025-66506), and sigstore/timestamp-authority (CVE-2025-66564).
  • golang:1.26.8 is the latest 1.26.x Go toolchain (minimum safe: 1.26.6). Bumped from 1.26.5 to fix Go stdlib CVEs (CVE-2026-33818, CVE-2026-39821, CVE-2026-46600, CVE-2026-56853, CVE-2026-56858–56862) in the compiled drone-ecr binary. Windows stages remain on golang:1.23.0 (no change) as they use a different builder path.

⚠️ Breaking-Change Warnings

The following components crossed a major version boundary:

  • docker:28.1.1-dinddocker:29.8.0-dind (major: 28 → 29)
  • arm64v8/docker:28.1.1-dindarm64v8/docker:29.8.0-dind (major: 28 → 29)

Before merging, please:

  1. Deploy to QA / staging
  2. Run the full pipeline sanity suite (docker build, push, ECR push)
  3. Verify the dockerd-entrypoint.sh entrypoint still functions correctly with docker 29.x
  4. Check the Docker Engine 29.x changelog for breaking changes: https://docs.docker.com/engine/release-notes/

Note: An earlier attempt (CI-23243) to bump to docker:28.5.2-dind was reverted from the CI-23243 branch. That revert was for the CI-23243 branch only (and only affected Windows files on master). This PR bumps to 29.8.0-dind which also resolves zlib and libexpat CVEs that 28.5.2-dind could not fix.


Newly Introduced CVEs

CVE Package Severity Source
CVE-2026-53612 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0
CVE-2026-53613 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0
CVE-2026-53614 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0
CVE-2026-76642 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0
CVE-2026-78408 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r1
CVE-2026-78409 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0
CVE-2026-78410 libblkid/libuuid 2.42.1-r0 High Alpine 3.24.1 in docker:29.8.0-dind; fix: 2.42.3-r0

These libblkid/libuuid CVEs are new in Alpine 3.24.1 (not present in Alpine 3.21.3 used by docker:28.1.1-dind). They are fixable by running apk add --no-cache util-linux-misc>=2.42.3-r1 in the docker plugin Dockerfile. Since these are lower in severity than the resolved Critical/High CVEs and are in system utilities bundled by docker:29.8.0-dind (not used directly by drone-ecr), they are deferred to a follow-up. The net CVE reduction is still substantial.

… v2.6.5

Remediates vulnerabilities in harnesssecure/ecr by updating the
plugins/docker base image. ECR inherits the fix via FROM plugins/docker.

Changes:
- docker/docker/Dockerfile.linux.amd64: docker:28.1.1-dind -> docker:29.8.0-dind
- docker/docker/Dockerfile.linux.arm64: arm64v8/docker:28.1.1-dind -> arm64v8/docker:29.8.0-dind
- cosign: v2.5.3 -> v2.6.5 (fixes crypto/grpc CVEs in cosign binary)
- .harness/harness.yaml: golang:1.26.5 -> golang:1.26.8 (fixes stdlib CVEs in drone-ecr binary)

OnDemand Prisma Cloud scan delta (plugins/ecr:21.3.4 -> test 21.3.5):
  Critical: 6 -> 0  High: 46 -> 7  Medium: 43 -> 25  Total: 102 -> 32

Trivy local scan delta:
  Critical: 21 -> 1  High: 390 -> 37  Medium: 405 -> 8  Low: 57 -> 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant