9217 Commits

Author SHA1 Message Date
Tõnis Tiigi
28fb74fa00 Merge pull request #6874 from thaJeztah/rm_deprecated_otel_envs
util/tracing: remove fallbacks for OTEL_TRACE_PARENT, OTEL_TRACE_STATE
2026-06-22 23:57:29 -07:00
Tõnis Tiigi
47a7c50184 Merge pull request #6881 from thaJeztah/switch_hashstructure
vendor: migrate to github.com/gohugoio/hashstructure
2026-06-22 23:50:21 -07:00
Akihiro Suda
db277e7bea Merge pull request #6892 from tonistiigi/js-yaml-ci-unbreak
ci: tolerate empty test matrix includes
2026-06-23 11:23:01 +09:00
Tonis Tiigi
2fa373c18a ci: pin js-yaml install
Use an explicit js-yaml version in the reusable test workflow so CI does
not silently pick up parser behavior changes from future npm releases.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-22 17:13:36 -07:00
Tonis Tiigi
eda3820bc4 ci: tolerate empty test matrix includes
The reusable test workflow installs js-yaml dynamically during CI. After
js-yaml 5.0.0 was released on 2026-06-20, load("") started throwing
instead of returning undefined.

Callers such as frontend.yml omit the optional includes input, so GitHub
Actions passes an empty string. Guard that value before parsing so omitted
or explicitly empty includes produce an empty JSON matrix while valid YAML
includes continue to work.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-22 17:10:11 -07:00
Akihiro Suda
933d1e71c2 Merge pull request #6883 from s3onghyun/fix-evaluate-comment
sourcepolicy: fix grammar in Evaluate doc comment
2026-06-19 17:37:05 +09:00
Akihiro Suda
317458b0e0 Merge pull request #6875 from thaJeztah/bump_engine_test
Dockerfile: update docker engine, cli to v29.6
2026-06-19 17:28:45 +09:00
Akihiro Suda
519436b048 Merge pull request #6885 from thaJeztah/vendor_containerd
vendor: github.com/containerd/containerd/v2 v2.2.5
2026-06-19 17:28:09 +09:00
Akihiro Suda
fb8b2232f0 Merge pull request #6884 from moby/dependabot/github_actions/actions/checkout-7.0.0
build(deps): bump actions/checkout from 6.0.3 to 7.0.0
2026-06-19 17:27:23 +09:00
Akihiro Suda
2a99b6b908 Merge pull request #6886 from thaJeztah/bump_containerd_bin
Dockerfile: update containerd v2.2.5, v2.1.9, v1.7.33
2026-06-19 17:26:53 +09:00
Sebastiaan van Stijn
ac1270b48f Dockerfile: update containerd v2.2.5, v2.1.9, v1.7.33
- full diff: https://github.com/containerd/containerd/compare/v2.2.4...v2.2.5
- release notes: https://github.com/containerd/containerd/releases/tag/v2.2.5

The fifth patch release for containerd 2.2 contains various fixes
and updates including security patches.

-  CVE-2026-50195 / [GHSA-cvxm-645q-p574] CRI: checkpoint import allows local image tag poisoning
-  CVE-2026-53488 / [GHSA-xhf5-7wjv-pqxp] CRI: image-config LABEL flows to host-root command execution from an image pull
-  CVE-2026-53492 / [GHSA-33vj-92qq-66hc] CRI: CDI annotation smuggling during CRI checkpoint restore
-  CVE-2026-53489 / [GHSA-rgh6-rfwx-v388] CRI: Arbitrary host file read via symlink following in CRI checkpoint restore
-  CVE-2026-47262 / [GHSA-jpcc-p29g-p8mq] containerd image-triggered runtime DoS via unbounded group parsing

[GHSA-cvxm-645q-p574]: https://github.com/containerd/containerd/security/advisories/GHSA-cvxm-645q-p574
[GHSA-xhf5-7wjv-pqxp]: https://github.com/containerd/containerd/security/advisories/GHSA-xhf5-7wjv-pqxp
[GHSA-33vj-92qq-66hc]: https://github.com/containerd/containerd/security/advisories/GHSA-33vj-92qq-66hc
[GHSA-rgh6-rfwx-v388]: https://github.com/containerd/containerd/security/advisories/GHSA-rgh6-rfwx-v388
[GHSA-jpcc-p29g-p8mq]: https://github.com/containerd/containerd/security/advisories/GHSA-jpcc-p29g-p8mq

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:56:44 +02:00
Sebastiaan van Stijn
09b1cf5004 vendor: github.com/containerd/containerd/v2 v2.2.5
- full diff: https://github.com/containerd/containerd/compare/v2.2.4...v2.2.5
- release notes: https://github.com/containerd/containerd/releases/tag/v2.2.5

The fifth patch release for containerd 2.2 contains various fixes
and updates including security patches.

-  CVE-2026-50195 / [GHSA-cvxm-645q-p574] CRI: checkpoint import allows local image tag poisoning
-  CVE-2026-53488 / [GHSA-xhf5-7wjv-pqxp] CRI: image-config LABEL flows to host-root command execution from an image pull
-  CVE-2026-53492 / [GHSA-33vj-92qq-66hc] CRI: CDI annotation smuggling during CRI checkpoint restore
-  CVE-2026-53489 / [GHSA-rgh6-rfwx-v388] CRI: Arbitrary host file read via symlink following in CRI checkpoint restore
-  CVE-2026-47262 / [GHSA-jpcc-p29g-p8mq] containerd image-triggered runtime DoS via unbounded group parsing

[GHSA-cvxm-645q-p574]: https://github.com/containerd/containerd/security/advisories/GHSA-cvxm-645q-p574
[GHSA-xhf5-7wjv-pqxp]: https://github.com/containerd/containerd/security/advisories/GHSA-xhf5-7wjv-pqxp
[GHSA-33vj-92qq-66hc]: https://github.com/containerd/containerd/security/advisories/GHSA-33vj-92qq-66hc
[GHSA-rgh6-rfwx-v388]: https://github.com/containerd/containerd/security/advisories/GHSA-rgh6-rfwx-v388
[GHSA-jpcc-p29g-p8mq]: https://github.com/containerd/containerd/security/advisories/GHSA-jpcc-p29g-p8mq

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:35:26 +02:00
Sebastiaan van Stijn
3d3f644910 vendor: golang.org/x/crypto v0.53.0
full diff: https://github.com/golang/crypto/compare/v0.52.0...v0.53.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:34:53 +02:00
Sebastiaan van Stijn
fa2fd46365 vendor: golang.org/x/text v0.38.0
full diff: https://github.com/golang/text/compare/v0.37.0...v0.38.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:33:52 +02:00
Sebastiaan van Stijn
9f6a981c3d vendor: golang.org/x/sync v0.21.0
full diff: https://github.com/golang/sync/compare/v0.20.0...v0.21.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:31:41 +02:00
Sebastiaan van Stijn
99ef161089 vendor: golang.org/x/term v0.44.0
full diff: https://github.com/golang/term/compare/v0.43.0...v0.44.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:30:45 +02:00
Sebastiaan van Stijn
44f2917e95 vendor: golang.org/x/sys v0.46.0
full diff: https://github.com/golang/sys/compare/v0.45.0...v0.46.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-19 09:28:12 +02:00
dependabot[bot]
f58dc3e352 build(deps): bump actions/checkout from 6.0.3 to 7.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](df4cb1c069...9c091bb21b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 00:23:20 +00:00
Sebastiaan van Stijn
3e0f833c68 Dockerfile: update docker engine, cli to v29.6
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-18 22:53:54 +02:00
s3onghyun
23d37f2a89 sourcepolicy: fix grammar in Evaluate doc comment
Signed-off-by: s3onghyun <s3onghyun.hong@gmail.com>
2026-06-18 17:52:02 +09:00
Tõnis Tiigi
8021b03612 Merge pull request #6870 from jarqvi/fix/gitutil-preserve-sudo-uid
gitutil: preserve SUDO_UID for git subprocesses
2026-06-18 00:32:46 -07:00
MohammadHasan Akbari
8086fae369 gitutil: preserve SUDO_UID for git subprocesses
When git runs as root under sudo it consults SUDO_UID to decide whether a
repository's ownership can be trusted, additionally granting access to
repositories owned by the user who invoked sudo. GitCLI builds a
restricted environment for the git subprocess and did not forward
SUDO_UID, so commands such as `sudo docker build` tripped git's "detected
dubious ownership" check and silently lost commit provenance: the build
still succeeds but prints "current commit information was not captured by
the build".

Forward SUDO_UID (only when present) on the host git config path enabled
via WithHostGitConfig, i.e. client-side local git inspection. The default
isolated path used by daemon-side callers is left untouched so it does not
pick up host environment. This matches git's own default behavior under
sudo: it does not disable safe.directory checks and is not equivalent to
safe.directory=*; it merely lets git trust repositories owned by the
invoking user. Only SUDO_UID is forwarded (git's ownership check is
uid-based and never consults SUDO_GID).

Fixes the root cause for docker/buildx#3855. buildx inspects the build
context through this GitCLI with WithHostGitConfig enabled, so buildx
picks the fix up via a moby/buildkit dependency bump with no buildx-side
code change.

Signed-off-by: MohammadHasan Akbari <jarqvi.jarqvi@gmail.com>
2026-06-18 10:28:08 +04:00
Sebastiaan van Stijn
50b548a135 vendor: migrate to github.com/gohugoio/hashstructure
The github.com/mitchellh/hashstructure/v2 module was archived, and
there's a maintained fork in the gohugoio org.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-17 10:02:52 +02:00
Akihiro Suda
c411f0ac55 Merge pull request #6876 from thaJeztah/bump_runc
Dockerfile: update runc binary to v1.3.6
dockerfile/1.25.0 dockerfile/1.25.0-labs v0.31.0
2026-06-17 02:37:14 +09:00
Sebastiaan van Stijn
f292e5c39a Dockerfile: update runc binary to v1.3.6
This is the sixth patch release of the 1.3.z series of runc. Among some
performance improvements and bugfixes, it includes a fix for a low-severity
vulnerability ([CVE-2026-41579]) and users are encouraged to update. As it was
a low-severity vulnerability and it was reported by multiple people, we decided
to release it publicly with NO EMBARGO.

Security

This release includes a fix for the following low-severity security issue:

- CVE-2026-41579 allowed a malicious image with a /dev symlink to have
  limited write access to the host filesystem in ways that our analysis
  indicates was too limited to be problematic in practice. This bug was very
  similar to those fixed in CVE-2025-31133, CVE-2025-52565, CVE-2025-31133
  and was simply missed at the time when we hardened the rootfs preparation
  code. We have conducted a deeper audit and not found any other problematic
  cases.

Fixed

- A regression in runc v1.3.0 which can result in a stuck runc exec or
  runc run when the container process runs for a short time.
- Various integration test improvements.

Changed

- When masking directories with maskPaths, runc will now re-use a single
  tmpfs instance (which is not writable) to reduce the number tmpfs
  superblocks that need to be reaped when containers die (in particular,
  Kubernetes applies masks to per-CPU sysfs directories which get expensive
  quickly).

[CVE-2026-41579]: https://github.com/opencontainers/runc/security/advisories/GHSA-xjvp-4fhw-gc47

full diff: https://github.com/opencontainers/runc/compare/v1.3.5...v1.3.6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-15 19:38:36 +02:00
Sebastiaan van Stijn
61e69f5da0 util/tracing: remove fallbacks for OTEL_TRACE_PARENT, OTEL_TRACE_STATE
The OTEL_TRACE_PARENT and OTEL_TRACE_STATE environment variables were
deprecated in BuildKit v0.10 (f5dbcf6e99)
because they were deprecated in the OTel specification in favor of the
TRACEPARENT and TRACESTATE env-vars, aligning with the [W3C traceparent]
and [W3C tracestate] headers.

[W3C traceparent]: https://www.w3.org/TR/trace-context/#traceparent-header
[W3C tracestate]: https://www.w3.org/TR/trace-context/#tracestate-header

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-15 11:12:12 +02:00
CrazyMax
d31ba4a7e7 Merge pull request #6867 from okhowang/fix/platforms-data-race
fix: add mutex to protect Worker.Platforms from data race
dockerfile/1.25.0-rc2-labs dockerfile/1.25.0-rc2 v0.31.0-rc2
2026-06-12 12:28:59 +02:00
CrazyMax
e819928cc9 Merge pull request #6869 from crazy-max/update-policy-helpers
vendor: update policy-helpers to d5411a945cfc
2026-06-12 10:40:59 +02:00
CrazyMax
e4d0dbaf3f chore: update generated files
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-12 09:44:45 +02:00
CrazyMax
c13539bb3d vendor: update policy-helpers to d5411a945cfc
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-12 09:35:58 +02:00
CrazyMax
f4f035cd32 Merge pull request #6864 from crazy-max/mode-delete-old-daemon
filesync: detect local export multi-platform transfer support
2026-06-12 08:45:56 +02:00
okhowang(王沛文)
e26b5d4524 fix: add mutex to protect Worker.Platforms from data race
When noCache=true, Platforms() appends to w.WorkerOpt.Platforms.
Concurrent gRPC calls to ListWorkers (each handled in a separate
goroutine) can cause a data race where one goroutine creates matchers
with length N, while another appends new platforms, causing the first
goroutine's range to exceed matchers bounds:

  panic: runtime error: index out of range [81] with length 81

Add sync.Mutex to serialize access to Platforms().

Signed-off-by: okhowang(王沛文) <okhowang@tencent.com>
2026-06-12 10:32:04 +08:00
Tõnis Tiigi
91760189a8 Merge pull request #6861 from ZRHann/fix-sourcepolicy-exact-convert
sourcepolicy: fix exact match convert ignoring destination
2026-06-11 15:23:47 -07:00
Tõnis Tiigi
128c3228fa Merge pull request #6863 from tonistiigi/exec-proxy-cni-dial-update
cniprovider: keep proxy dials in CNI netns
2026-06-11 12:00:21 -07:00
CrazyMax
bac24d3910 cniprovider: keep loopback DNS dials in caller netns
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-11 11:27:10 -07:00
Tonis Tiigi
4015a3c77c cniprovider: keep proxy dials in CNI netns
Dialing from a CNI namespace with the standard net.Dialer can escape the
namespace through happy-eyeballs connection attempts or resolver goroutines.

Use a serial dialer and route Go resolver sockets through the target
namespace, while preserving host loopback DNS stubs such as systemd-resolved
and Docker embedded DNS.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-11 11:27:09 -07:00
Tõnis Tiigi
61cdb179f9 Merge pull request #6862 from tonistiigi/exec-proxy-https-dial-fix
proxyprovider: fix exec proxy HTTPS regressions
2026-06-11 10:55:36 -07:00
CrazyMax
86ddfea28e filesync: detect local export multi-platform transfer support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-11 18:53:07 +02:00
CrazyMax
5a96cdc35b Merge pull request #6865 from crazy-max/github-builder-1.12.0
ci: update docker/github-builder to v1.12.0
2026-06-11 18:22:53 +02:00
CrazyMax
4c3706dd8d ci: update docker/github-builder to v1.12.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-11 17:37:32 +02:00
CrazyMax
3719550704 proxyprovider: test HTTP/2 transport clone with custom dialer
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-11 11:39:21 +02:00
ZRHann
28ce6844cf sourcepolicy: fix exact match convert ignoring destination
A CONVERT rule whose selector uses matchType EXACT matched the source but
silently performed no conversion: the source identifier was left unchanged
and no error was returned.

The destination of a CONVERT is computed by selectorCache.Format(match,
format), where format is the rule's Updates.Identifier. For WILDCARD and
REGEX the groups captured from match are substituted into format. The EXACT
branch has no captures and should return the target format verbatim, but it
returned s.Identifier (the selector's own identifier, i.e. the matched
source) instead. mutate() then computed a destination equal to the source,
saw op.Identifier == dest, and returned mutated=false without applying the
update.

This made exact-match source pinning/substitution silently fail, e.g.
pinning an image tag to a digest for reproducible builds.

Return format from the EXACT branch. The empty-destination case is
unaffected: mutate() already falls back to the selector identifier before
calling Format, so an empty Updates.Identifier remains a correct no-op.

Add testConvertExact covering an explicit MatchType_EXACT conversion; the
existing testConvert only exercised the default wildcard path.

Signed-off-by: ZRHann <zrhann@foxmail.com>
2026-06-11 14:01:01 +08:00
Tonis Tiigi
19bcaabb39 proxyprovider: fix exec proxy HTTPS regressions
Commit 91cc422d5 split exec proxying from exec network mode and
started cloning the proxy transport per egress namespace with a custom
DialContext.

Without ForceAttemptHTTP2, the cloned transport could advertise h2 via
ALPN without a registered HTTP/2 RoundTripper, causing Alpine apk update
requests to fail with proxy 502 responses.

Restoring HTTP/2 upstream also exposes unknown-length HTTP/2 responses.
When those responses are rewritten for the MITM HTTP/1.1 client, close
the client-facing connection so clients can delimit the response body.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-10 22:32:37 -07:00
Tõnis Tiigi
e7b395c2e1 Merge pull request #6860 from tonistiigi/0610-dockerd-test-fixes
v0.31 dockerd worker test fixes
dockerfile/1.25.0-rc1-labs dockerfile/1.25.0-rc1 v0.31.0-rc1
2026-06-10 14:12:38 -07:00
Tonis Tiigi
51dc1e9093 client: update loopback condition for dockerd worker
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-10 12:39:23 -07:00
Tonis Tiigi
e45a92397c client: update dockerd test conditions after oci-mediatypes default
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-10 10:58:45 -07:00
Tonis Tiigi
fc53e5e9d0 client: fix mergeop requirements in new test for dockerd
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-06-10 10:58:45 -07:00
Tõnis Tiigi
0f0aad9e38 Merge pull request #6859 from crazy-max/revert-6810
Revert "executor: fix containerd stdin close race"
2026-06-10 10:04:37 -07:00
CrazyMax
b374b0ef7a Merge pull request #6858 from tonistiigi/proxy-unset-fallback-fix
network: fix proxy default egress
2026-06-10 19:03:58 +02:00
CrazyMax
d13b3ac2ce Revert "executor: fix containerd stdin close race"
This reverts commit cb6df1c266.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-10 18:25:51 +02:00