chore(deps): github.com/docker/buildx v0.36.0-rc2, buildkit v0.32.0-rc2 - #13975
chore(deps): github.com/docker/buildx v0.36.0-rc2, buildkit v0.32.0-rc2#13975glours wants to merge 2 commits into
Conversation
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
This PR bumps github.com/docker/buildx to v0.36.0-rc2, github.com/moby/buildkit to v0.32.0-rc2, and advances the go directive from 1.25.9 to 1.26.3. The changes to go.mod and go.sum are mechanically consistent with the dependency upgrades — updated direct deps, new/updated transitives, and matching hash entries in go.sum. No bugs were identified in the introduced changes.
|
Failure looks consistent; could be changes in containerd code? Or is it a test-registry not accepting some content? |
caf7c30 to
7d17739
Compare
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟡 NEEDS ATTENTION
Both findings are in the newly introduced GetBlob function in internal/oci/resolver.go. The dependency bumps and refactoring in pullComposeFiles are otherwise correct and well-structured. The blob-endpoint approach is the right fix for the manifests-vs-blobs endpoint confusion described in the PR.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
7d17739 to
71bd286
Compare
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟡 NEEDS ATTENTION
Dismissed security findings (review manually)
- internal/oci/resolver.go:115 — Integer overflow in
io.LimitReaderwhendescriptor.Sizeismath.MaxInt64(verifier mitigation: overflow produces 0-byte read, and the size-mismatch check at line 119 immediately returns an error — no silent bypass; impact is at most an unexpected error, not data corruption)
Test the upcoming buildx and BuildKit releases ahead of GA. buildx v0.36.0-rc2 requires Go >= 1.26.3, so the go directive moves from 1.25.9 to 1.26.3. Signed-off-by: Guillaume Lours <glours@users.noreply.github.com>
Pulling an oci:// resource resolved each layer digest through the registry manifests endpoint, which answers 500 when the digest points to a non-manifest blob. containerd v2.3.0+ (pulled in by buildx v0.36 and buildkit v0.32) no longer falls back to the blobs endpoint unless manifests returned 404, so publish/pull of compose artifacts broke. Fetch layers directly with the descriptors already listed in the manifest instead of resolving them again. Signed-off-by: Guillaume Lours <glours@users.noreply.github.com>
71bd286 to
9258298
Compare
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
The PR is a routine dependency bump (buildx v0.36.0-rc2, BuildKit v0.32.0-rc2, Go 1.25.9→1.26.3) plus a new GetBlob helper in internal/oci/resolver.go that fetches artifact layers directly from the blobs endpoint. The dependency changes look correct and the new function is well-structured with size-bounding and digest verification. One low-severity edge case was found.
| defer func() { _ = fetch.Close() }() | ||
| // bound the read by the declared size so a rogue registry can't cause | ||
| // unbounded allocation; the extra byte detects oversized responses. | ||
| content, err := io.ReadAll(io.LimitReader(fetch, descriptor.Size+1)) |
There was a problem hiding this comment.
[low] Integer overflow in LimitReader bound when descriptor.Size == math.MaxInt64
descriptor.Size+1 overflows to math.MinInt64 when descriptor.Size is math.MaxInt64. io.LimitReader with a negative limit reads 0 bytes immediately, so the size mismatch check fires and the error message says "got 0 bytes" instead of OOM — but the OOM guard intent is defeated for any descriptor claiming exactly math.MaxInt64 bytes. A safe fix caps the limit before adding 1:
| content, err := io.ReadAll(io.LimitReader(fetch, descriptor.Size+1)) | |
| limit := descriptor.Size | |
| if limit < math.MaxInt64 { | |
| limit++ | |
| } | |
| content, err := io.ReadAll(io.LimitReader(fetch, limit)) |
| Confidence | Score |
|---|---|
| 🟢 strong | 100/100 |
What I did
Test the upcoming buildx and BuildKit releases ahead of GA. buildx v0.36.0-rc2 requires Go >= 1.26.3, so the go directive moves from 1.25.9 to 1.26.3.
Related issue
N/A
(not mandatory) A picture of a cute animal, if possible in relation to what you did