Skip to content

Drop github.com/docker/docker via org-controlled dktest fork - #66

Merged
daniel-garcia merged 1 commit into
ibfrom
dktest-moby
Sep 18, 2026
Merged

daniel-garcia merged 1 commit into
ibfrom
dktest-moby

Conversation

@daniel-garcia

Copy link
Copy Markdown

Removes github.com/docker/docker from the dependency graph. Trivy manifest findings go 5 → 1.

Why a bump can't fix this

docker/docker carries five advisories, and none are clearable by upgrading:

$ go list -m -versions github.com/docker/docker | tail -1
v28.5.2+incompatible          ← already have this; the path ends here

$ go list -m github.com/docker/docker@v29.3.1+incompatible
go: invalid version: unknown revision v29.3.1

The module path stopped publishing at v28.5.2 when the project renamed to github.com/moby/moby/v2, so the Go vuln DB records these as introduced: 0 with no fixed event. Trivy reports a fix at 29.3.1, but that's the Docker project release number and isn't resolvable on this module path. Upstream hit the same wall and migrated their own harness off it in 3add8f4 ("BlackDuck Polaris findings").

Reachability vs. manifest

Worth being precise, because these disagree and both matter:

  • Reachability (govulncheck): irrelevant. Zero reachable either way — docker/docker is imported only by dktesting, which is consumed exclusively from _test.go files, so it's never linked into the CLI or library.
  • Manifest (trivy / BlackDuck / Dependabot): all five flagged regardless of reachability, including two HIGH.

This PR is purely about the second. The shipped artifact is unchanged.

What changed

The last thing requiring docker/docker was dhui/dktest, whose latest release (v0.4.6) still imports it. dhui/dktest#53 migrates dktest to github.com/moby/moby but is open and unmerged, so this points the requirement at our own fork of that branch, pinned to the exact commit:

replace github.com/dhui/dktest => github.com/infobloxopen/dktest v0.0.0-20260529152735-69e70a835d46

Adds no new dependencies: moby/moby/api v1.54.2 and moby/moby/client v0.4.1 are the versions this module already used. Neither is flagged — the advisories name the github.com/moby/moby root module, not those subpaths.

Result

before after
docker/docker CVE-2026-41567 HIGH gone
docker/docker CVE-2026-42306 HIGH gone
docker/docker CVE-2026-33997 MEDIUM gone
docker/docker CVE-2026-41568 MEDIUM gone
x/crypto GO-2026-5932 UNKNOWN remains

The remaining one has no fix on any version and stays only because x/crypto is in the module graph; the openpgp package itself is no longer imported (removed in #65).

Verification

  • go build ./... and go vet ./... clean. vet type-checks every _test.go, which is precisely where dktesting is consumed, so the moby API migration is confirmed source-compatible across all 15 driver test files.
  • Non-docker test packages pass.
  • go list -m github.com/docker/docker → not a known dependency.
  • Docker-backed driver tests were not executed locally; CI covers those, and they are the real exercise of this change.

Follow-up

Revert the replace once dhui/dktest#53 ships in a tagged release. replace is ignored by downstream consumers, so this affects only builds and scans of this repository — it imposes nothing on anyone importing migrate.

Not included in v1.0.11, which was tagged from 6fa6bab: this is test-infrastructure only and does not change the released artifact.

🤖 Generated with Claude Code

github.com/docker/docker carries five advisories that no version bump can
clear: the module path stopped publishing at v28.5.2 (which we already
had) when the project renamed to github.com/moby/moby/v2, so the Go vuln
DB records them as `introduced: 0` with no fixed event. Trivy suggests a
fix at 29.3.1, but that is the Docker project release number and is not
resolvable on this module path -- `go get` rejects it as an unknown
revision.

Nothing in the shipped binary reaches this code; govulncheck reports zero
reachable vulnerabilities either way. It is imported only by dktesting,
which is used exclusively from _test.go files. The cost is manifest-level:
SCA tooling (BlackDuck Polaris, trivy) flags all five regardless of
reachability. Upstream hit the same problem and migrated their own test
harness off it in 3add8f4.

The only remaining requirement was dhui/dktest, whose latest release
(v0.4.6) still imports docker/docker. dhui/dktest#53 migrates it to
github.com/moby/moby and is open but unmerged, so this points the
requirement at our own fork of that branch, pinned to the exact commit.
It needs no new dependencies: moby/moby/api v1.54.2 and moby/moby/client
v0.4.1 are the versions this module already used, and neither path is
flagged -- the advisories name the github.com/moby/moby root module, not
those subpaths.

Trivy manifest findings go from 5 to 1; what remains is the x/crypto
openpgp advisory, which has no fix on any version and stays only because
x/crypto is in the module graph. The openpgp package itself is no longer
imported.

Revert this replace once dhui/dktest#53 ships a tagged release. Note that
replace directives are ignored by downstream consumers, so this affects
only builds and scans of this repository.

Verified: go build, go vet (which type-checks every _test.go, where
dktesting is consumed), and the non-docker test packages all pass.
@daniel-garcia
daniel-garcia merged commit e0f153f into ib Sep 18, 2026
6 checks passed
@daniel-garcia
daniel-garcia deleted the dktest-moby branch September 18, 2026 02:11
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 35296949798

Coverage remained the same at 52.649%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 8437
Covered Lines: 4442
Line Coverage: 52.65%
Coverage Strength: 6491.71 hits per line

💛 - Coveralls

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.

2 participants