Repository navigation
fix(deps): move dockerd client to moby/moby/client and bump Go to 1.26.10 - #410
Merged
Merged
Conversation
…6.10 github.com/docker/docker has no release past v28.5.2 on that module path, so CVE-2026-33997 (fixed in 29.3.1) can only be cleared by moving to the split moby client module. The agent uses the client for Ping and ContainerInspect only, so the migration is local to containers/dockerd.go: - client.WithAPIVersionNegotiation replaces the removed NegotiateAPIVersion - Ping and ContainerInspect take options structs; inspect returns a result wrapper whose Container field holds the old response - PortBinding.HostIP is now netip.Addr; skip unset addresses, which the old string concatenation also failed to parse github.com/docker/docker is no longer in the module graph. Go toolchain 1.26.5 -> 1.26.10 in the Dockerfiles and CI, with GOTOOLCHAIN=local so the builder never fetches a different toolchain.
There was a problem hiding this comment.
Code Review
This pull request migrates the Docker engine client from github.com/docker/docker to github.com/moby/moby/client to address CVE-2026-33997, updates Go to version 1.26.10 across Dockerfiles, and adjusts Docker client initialization and inspection logic. Feedback on the changes highlights an issue in containers/dockerd.go where direct string concatenation of HostIP and HostPort will fail for IPv6 addresses, and recommends using net.JoinHostPort instead.
blue4209211
approved these changes
Oct 29, 2026
This was referenced Oct 29, 2026
Merged
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.
What this PR does
The agent's Docker engine client (
github.com/docker/dockerv28.5.2) carries CVE-2026-33997 (NVD 8.1), and that module has no release with the fix; it lives only ingithub.com/moby/moby/client. This moves the one file that talks to dockerd onto the moby client and rebuilds on Go 1.26.10. Container discovery on Docker hosts should behave exactly as before.How to verify
trivy imageon the new tag no longer lists CVE-2026-33997 or the Go stdlib findings.Risks
Linked issue / context
Image CVE cleanup: clears every fixable finding NVD scores 8.0+. The two left (
openssl-libsCVE-2026-31789 / CVE-2026-28387) are in the UBI9 base with no Red Hat fix yet.How was this tested? / detail
containers/dockerd.go: API version negotiation is now a client option (client.WithAPIVersionNegotiation());PingandContainerInspecttake option structs and inspect wraps its result; port-binding host IPs are typed addresses and unset ones are skipped (the old code failed to parse them too).github.com/docker/dockeris gone from go.mod/go.sum.GOTOOLCHAIN=localin the builder. The Dockerfile already runsmicrodnf update -y.go vetexit 0, CI's test set passes (all packages except/containers, as CI does), on Go 1.26.10 in a Linux builder.Local e2e: built the image; ran DockerdInit + DockerdInspect against a real dockerd for an nginx container -> correct name, image, listen 0.0.0.0:18080, bridge network, json-file log path and 4 env vars; started the full agent container -> dockerd init succeeds with no warning, containerd and BTF socket offsets discovered, then it exits at "neither debugfs nor tracefs are mounted" (the local VM kernel lacks those tracepoints). Not run: eBPF collection on a real Linux node; opened with that gap stated on purpose, to be closed before release.
Scans, NVD 8.0+: 0.1.12-rc.1 = 3 (1 fixable), this build = 2 (0 fixable, UBI9 openssl-libs).
eBPF changes?
No.
Checklist
## [Unreleased]