53027 Commits

Author SHA1 Message Date
Austin Vazquez
4e04130911 Merge pull request #51410 from austinvazquez/test-containerd-1.7.29
[28.x] Dockerfile: test containerd v1.7.29
2025-11-05 21:10:10 -06:00
Austin Vazquez
f5cacc257a Dockerfile: test containerd v1.7.29
Update the version of containerd used in CI and for static binaries
to v1.7.29

Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-11-05 19:25:41 -06:00
Paweł Gronowski
89c5e8fd66 Merge pull request #51396 from thaJeztah/28.x_backport_api_docs
[28.x backport] api/docs: remove BuildCache.Parent field for API v1.42 and up
v28.5.2
2025-11-05 15:19:32 +01:00
Austin Vazquez
9b93878308 Merge pull request #51395 from thaJeztah/28.x_backport_rootless_reject
[28.x backport] dockerd-rootless.sh: reject DOCKERD_ROOTLESS_ROOTLESSKIT_NET=host
2025-11-05 07:41:12 -06:00
Paweł Gronowski
6178456763 Merge pull request #51398 from vvoland/51397-28.x
[28.x backport] vendor: github.com/moby/buildkit v0.25.2
2025-11-05 14:14:53 +01:00
Paweł Gronowski
0cae4e5c8f vendor: github.com/moby/buildkit v0.25.2
full diff: https://github.com/moby/buildkit/compare/v0.25.1...v0.25.2

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 39f2dbffa1)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-11-05 13:18:13 +01:00
Sebastiaan van Stijn
33cc06f616 Merge pull request #51394 from vvoland/51393-28.x
[28.x backport] Dockerfile: update runc binary to v1.3.3
2025-11-05 12:47:15 +01:00
Sebastiaan van Stijn
d525277410 api/docs: remove BuildCache.Parent field for API v1.42 and up
The BuildCache.Parent field was removed in API v1.42 in [moby@e0db820].
While we had to keep the Go struct field around to backfil the field for
older API versions, it's no longer part of API v1.42 and up (using the
"omitempty" is just an implementation detail).

This patch corrects the swagger files to match this.

[moby@e0db820]: e0db8207f3

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit a5d9619093)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-05 12:04:25 +01:00
Akihiro Suda
2fbc51b4f8 dockerd-rootless.sh: reject DOCKERD_ROOTLESS_ROOTLESSKIT_NET=host
`rootlesskit --net=host` does not work with Docker.

Alternative ways to run Rootless Docker without the network overhead:
- Use https://github.com/rootless-containers/bypass4netns
- Or, use `docker run --net=host` with a PR 47103 (WIP)

See issue 51363

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
(cherry picked from commit 76b1d304e4)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-05 12:00:54 +01:00
Paweł Gronowski
bd98008c07 integration-cli: Adjust nofile limits
runc v1.3.3 needs more file descriptors now.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-11-05 11:31:32 +01:00
Paweł Gronowski
19675151a3 Dockerfile: update runc binary to v1.3.3
Update the version used in CI and for the static binaries.

- release notes: https://github.com/opencontainers/runc/releases/tag/v1.3.3
- full diff: https://github.com/opencontainers/runc/compare/v1.3.2...v1.3.3

This release contains fixes for three high-severity security
vulnerabilities in runc (CVE-2025-31133, CVE-2025-52565, and
CVE-2025-52881). All three vulnerabilities ultimately allow (through
different methods) for full container breakouts by bypassing runc's
restrictions for writing to arbitrary /proc files.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 35f6a78082)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-11-05 11:00:17 +01:00
Sebastiaan van Stijn
44896604b8 Merge pull request #51387 from thaJeztah/28.x_bump_go
[28.x] update to go1.24.9
2025-11-04 14:50:31 +01:00
Sebastiaan van Stijn
d24eab928b update to go1.24.9
go1.24.9 (released 2025-10-13) includes fixes to the crypto/x509 package.
See the Go 1.24.9 milestone on our issue tracker for details:

- https://github.com/golang/go/issues?q=milestone%3AGo1.24.9+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.24.8...go1.24.9

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-04 11:05:26 +01:00
Sebastiaan van Stijn
b651c094e2 Merge pull request #51162 from vvoland/51149-28.x
[28.x backport] dockerd-rootless.sh: if no slirp4netns, try pasta
2025-10-10 13:53:40 +02:00
Rob Murray
df58dd519b dockerd-rootless: default MTU 65520 for slirp4netns
When DOCKERD_ROOTLESS_ROOTLESSKIT_MTU is not set, and ...
- DOCKERD_ROOTLESS_ROOTLESSKIT_NET is not set and slirp4netns
  is selected, MTU defaults to 65520.
- DOCKERD_ROOTLESS_ROOTLESSKIT_NET=slirp4netns, MTU defaults
  to 1500.

Change the logic so that, however slirp4netns is selected, MTU
defaults to 65520.

Signed-off-by: Rob Murray <rob.murray@docker.com>
(cherry picked from commit a6206f2da9)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-10 12:40:00 +02:00
Rob Murray
f822c9f39c dockerd-rootless.sh: if no slirp4netns, try pasta
Signed-off-by: Rob Murray <rob.murray@docker.com>
(cherry picked from commit 7e63d2a81b)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-10 12:39:57 +02:00
Austin Vazquez
f8215cc266 Merge pull request #51137 from austinvazquez/cherry-pick-vendor-buildkit-0.25.1-to-28.x
[28.x] vendor: update buildkit to v0.25.1
v28.5.1
2025-10-07 19:34:32 -07:00
Tonis Tiigi
40a856a593 hack: add patch to buildkit tests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 1b1608f2cd)
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-07 20:01:53 -05:00
Tonis Tiigi
5d1c3119f2 vendor: update buildkit to v0.25.1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 3c418bea4e)
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-07 20:01:34 -05:00
Austin Vazquez
90506c1144 Merge pull request #51133 from vvoland/51132-28.x
[28.x backport] update to go1.24.8
2025-10-07 16:35:30 -07:00
Austin Vazquez
17db0cd834 Merge pull request #51128 from thaJeztah/28.x_backport_gcpolicy-invalid-calculations
[28.x backport] builder: use proper percentage calculations for default gc policy
2025-10-07 13:56:48 -07:00
Paweł Gronowski
f7c40ea344 update to go1.24.8
This minor release includes 10 security fixes following the security policy:

- net/mail: excessive CPU consumption in ParseAddress

    The ParseAddress function constructed domain-literal address components through repeated string concatenation. When parsing large domain-literal components, this could cause excessive CPU consumption.

    Thanks to Philippe Antoine (Catena cyber) for reporting this issue.

    This is CVE-2025-61725 and Go issue https://go.dev/issue/75680.

- crypto/x509: quadratic complexity when checking name constraints

    Due to the design of the name constraint checking algorithm, the processing time
    of some inputs scales non-linearly with respect to the size of the certificate.

    This affects programs which validate arbitrary certificate chains.

    Thanks to Jakub Ciolek for reporting this issue.

    This is CVE-2025-58187 and Go issue https://go.dev/issue/75681.

- crypto/tls: ALPN negotiation errors can contain arbitrary text

    The crypto/tls conn.Handshake method returns an error on the server-side when
    ALPN negotation fails which can contain arbitrary attacker controlled
    information provided by the client-side of the connection which is not escaped.

    This affects programs which log these errors without any additional form of
    sanitization, and may allow injection of attacker controlled information into
    logs.

    Thanks to National Cyber Security Centre Finland for reporting this issue.

    This is CVE-2025-58189 and Go issue https://go.dev/issue/75652.

- encoding/pem: quadratic complexity when parsing some invalid inputs

    Due to the design of the PEM parsing function, the processing time for some
    inputs scales non-linearly with respect to the size of the input.

    This affects programs which parse untrusted PEM inputs.

    Thanks to Jakub Ciolek for reporting this issue.

    This is CVE-2025-61723 and Go issue https://go.dev/issue/75676.

- net/url: insufficient validation of bracketed IPv6 hostnames

    The Parse function permitted values other than IPv6 addresses to be included in square brackets within the host component of a URL. RFC 3986 permits IPv6 addresses to be included within the host component, enclosed within square brackets. For example: "http://[::1]/". IPv4 addresses and hostnames must not appear within square brackets. Parse did not enforce this requirement.

    Thanks to Enze Wang, Jingcheng Yang and Zehui Miao of Tsinghua University for reporting this issue.

    This is CVE-2025-47912 and Go issue https://go.dev/issue/75678.

- encoding/asn1: pre-allocating memory when parsing DER payload can cause memory exhaustion

    When parsing DER payloads, memories were being allocated prior to fully validating the payloads.
    This permits an attacker to craft a big empty DER payload to cause memory exhaustion in functions such as asn1.Unmarshal, x509.ParseCertificateRequest, and ocsp.ParseResponse.

    Thanks to Jakub Ciolek for reporting this issue.

    This is CVE-2025-58185 and Go issue https://go.dev/issue/75671.

- net/http: lack of limit when parsing cookies can cause memory exhaustion

    Despite HTTP headers having a default limit of 1 MB, the number of cookies that can be parsed did not have a limit.
    By sending a lot of very small cookies such as "a=;", an attacker can make an HTTP server allocate a large amount of structs, causing large memory consumption.

    net/http now limits the number of cookies accepted to 3000, which can be adjusted using the httpcookiemaxnum GODEBUG option.

    Thanks to jub0bs for reporting this issue.

    This is CVE-2025-58186 and Go issue https://go.dev/issue/75672.

- crypto/x509: panic when validating certificates with DSA public keys

    Validating certificate chains which contain DSA public keys can cause programs
    to panic, due to a interface cast that assumes they implement the Equal method.

    This affects programs which validate arbitrary certificate chains.

    Thanks to Jakub Ciolek for reporting this issue.

    This is CVE-2025-58188 and Go issue https://go.dev/issue/75675.

- archive/tar: unbounded allocation when parsing GNU sparse map

    tar.Reader did not set a maximum size on the number of sparse region data blocks in GNU tar pax 1.0 sparse files. A maliciously-crafted archive containing a large number of sparse regions could cause a Reader to read an unbounded amount of data from the archive into memory. When reading from a compressed source, a small compressed input could result in large allocations.

    Thanks to Harshit Gupta (Mr HAX) - https://www.linkedin.com/in/iam-harshit-gupta/ for reporting this issue.

    This is CVE-2025-58183 and Go issue https://go.dev/issue/75677.

- net/textproto: excessive CPU consumption in Reader.ReadResponse

    The Reader.ReadResponse function constructed a response string through
    repeated string concatenation of lines. When the number of lines in a response is large,
    this could cause excessive CPU consumption.

    Thanks to Jakub Ciolek for reporting this issue.

    This is CVE-2025-61724 and Go issue https://go.dev/issue/75716.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit d7b4bb25bda9f86dc47bf5a8921ceb8b3a4a498c)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-07 21:50:05 +02:00
Jonathan A. Sternberg
dccf7c889c builder: use proper percentage calculations for default gc policy
The default gc policy calculations based on percentage were calculated
improperly. These were calculated correctly in buildkit, but the
calculation method was not copied over correctly when updating the
values.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
(cherry picked from commit 1a7d7cc015)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-07 19:10:14 +02:00
Sebastiaan van Stijn
0f040aa194 Merge pull request #51126 from vvoland/51124-28.x
[28.x backport] ci: fix cache for go modules
2025-10-07 18:25:08 +02:00
CrazyMax
5b1a039e6f ci: fix cache for go modules
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
(cherry picked from commit dbcbe87d52)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-07 17:25:37 +02:00
Paweł Gronowski
8fa4bd5e0d Merge pull request #51121 from crazy-max/28.x_ci-caches-fixes
[28.x] ci: update gha cache attributes
2025-10-07 13:31:15 +02:00
CrazyMax
e59129b9cc ci: update gha cache attributes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-07 12:41:00 +02:00
Paweł Gronowski
28d9ed5878 Merge pull request #51116 from austinvazquez/cherry-pick-fix-go-validation-to-28.x
[28.x] Rework Go mod tidy/vendor checks
2025-10-07 08:43:48 +02:00
Austin Vazquez
adcea7bdc9 Rework Go mod tidy/vendor checks
This change reworks the Go mod tidy/vendor checks to run for all tracked Go modules by the project and fail for any uncommitted changes.

Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
(cherry picked from commit f6e1bf2808)
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-06 19:19:23 -05:00
Austin Vazquez
bab04642ff Add existence check for go.mod and go.sum files
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
(cherry picked from commit 0ad35e3ef0)
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-06 19:11:11 -05:00
Austin Vazquez
7841b1c65b Merge pull request #51110 from thaJeztah/28.x_backport_deprecate_plugin_dockerversion
[28.x backport] api/types/plugin: deprecate Config.DockerVersion field
2025-10-06 08:04:17 -07:00
Sebastiaan van Stijn
1dcce6800f api/types/plugin: deprecate Config.DockerVersion field
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c4fda95bea)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-06 14:22:41 +02:00
Sebastiaan van Stijn
b67c30f946 Merge pull request #51105 from thaJeztah/28.x_backport_deprecate_legacy_inspect_fields
[28.x backport] api/types/image: InspectResponse: deprecate Parent, DockerVersion
2025-10-06 11:43:29 +02:00
Sebastiaan van Stijn
3388108f9a api/types/image: InspectResponse: deprecate Parent, DockerVersion
The image inspect response has various fields that were deprecated as
part of the legacy builder, or Dockerfile syntax;

- The `Parent` field is only used for the legacy builder, and only set for
  images that are built locally (i.e., not persisted when pulling an image).
- The `DockerVersion` field is only set when building images with the legacy
  builder, and empty in most cases.

This patch deprecates the fields in the `InspectResponse` go struct, as
these fields will no longer be set in future once the legacy builder is
removed (`Parent`, `DockerVersion`). The legacy builder's deprecation in
[cli@4d8e457] / [cli@fd22746] (docker 23.0, API v1.42), however the related
API fields were kept so that information of legacy images would not be
discarded.

The API continues to return these fields if set, allowing the client to
print the fields for informational purposes when printing the raw response,
but these fields should be considered "transitional", and not be depended
on; deprecating the fields helps raise awareness.

[cli@4d8e457]: 4d8e45782b
[cli@fd22746]: fd2274692f

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit bd8a99b400)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-05 23:06:38 +02:00
Austin Vazquez
5c2c3c2ae1 Merge pull request #51091 from austinvazquez/add-vendor-sum-to-28.x
[28.x] Add back vendor.sum
2025-10-03 13:27:18 -07:00
Austin Vazquez
e468481ff0 Add back vendor.sum
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-02 17:21:18 -05:00
Sebastiaan van Stijn
cd048300a4 Merge pull request #51075 from vvoland/51074-28.x
[28.x backport] vendor: github.com/moby/buildkit v0.25.0
v28.5.0
2025-10-01 17:26:18 +02:00
Jonathan A. Sternberg
e29d6be7a5 vendor: github.com/moby/buildkit v0.25.0
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 3f3bbe4430)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-01 11:53:21 +02:00
Sebastiaan van Stijn
9b4369035b Merge pull request #51069 from thaJeztah/28.x_backport_docs_rm_deprecated_virtualsize
[28.x backport] api: swagger: remove VirtualSize fields for API > v1.43
2025-09-30 14:56:00 +02:00
Sebastiaan van Stijn
4f3572596b api: swagger: remove VirtualSize fields for API > v1.43
The `VirtualSize` field was deprecated in [moby@1261fe6], and omitted / removed
in API v1.44 in [moby@913b0f5]. We should not document the field as part of
those API versions as it no longer exists for those.

[moby@1261fe6]: 1261fe69a3
[moby@913b0f5]: 913b0f51ca

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 51cbd2ed16)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-30 13:19:32 +02:00
Sebastiaan van Stijn
79f310d4bc Merge pull request #51067 from austinvazquez/cherry-pick-deprecate-kernel-memocy-tcp-to-28.x
[28.x backport] api: deprecate `KernelMemoryTCP` support
2025-09-30 10:31:27 +02:00
Austin Vazquez
deb4bbbfe0 api: deprecate KernelMemoryTCP support
Starting with kernel v6.12, kernel memory TCP accounting is deprecated for cgroups v1.
Note: kernel memory TCP accounting is not supported by cgroups v2.

See d046ff46ee

Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
(cherry picked from commit fb2f8115c8)
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-30 10:19:06 +02:00
Sebastiaan van Stijn
423a7fd6af Merge pull request #51064 from thaJeztah/28.x_backport_fix_epcnt_warning
[28.x backport] Eliminate warning about endpoint count store delete
2025-09-29 17:21:26 +02:00
Rob Murray
fbf2fe8b7d Eliminate warning about endpoint count store delete
Commit 380ded6 restored a now-unused endpoint count to the
store, so that when the daemon is downgraded it exists for
the old code to find.

But, on network deletion, the endpoint count was not loaded
from the store - so the delete code saw the wrong "index",
and logged a warning before deleting it anyway.

Use DeleteObject instead of DeleteObjectAtomic, so the old
index isn't checked.

Signed-off-by: Rob Murray <rob.murray@docker.com>
(cherry picked from commit 94bcf89412)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-29 15:15:55 +02:00
Austin Vazquez
252a1ebe7e Merge pull request #51061 from thaJeztah/28.x_backport_rm_email_example
[28.x backport] api/docs: remove email field from example auth
2025-09-29 05:30:22 -07:00
Sebastiaan van Stijn
2c15eb6617 api/docs: remove email field from example auth
This field was no longer used since Docker 1.11 (API version 1.23)
through [moby@aee260d] and [engine-api@9a9e468] but kept and deprecated
in [engine-api@167efc7], however the docs still used it in an example.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 08d014cac8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-29 11:30:57 +02:00
Sebastiaan van Stijn
f984f7218f Merge pull request #51052 from vvoland/51051-28.x
[28.x backport] api/checkpoint: Don't return null if no checkpoints
2025-09-27 00:50:13 +02:00
Paweł Gronowski
fd10938136 api/checkpoint: Don't return null if no checkpoints
This fixes a bug where no checkpoints would produce a `null` response
instead of an empty array:

```
$ docker run -d --name foo nginx:alpine
17fbeff7185733f101c38cb8208359dd0ef141116a1345da2d3c3f58c11f3e14

$ curl --unix-socket /var/run/docker.sock http://local/containers/foo/checkpoints
null
```

With this patch, this becomes:
```
$ curl --unix-socket /var/run/docker.sock http://local/containers/foo/checkpoints
[]
```

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 646e068cf1)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-09-26 16:47:16 +02:00
Paweł Gronowski
73f8d82c4b Merge pull request #51038 from thaJeztah/28.x_backport_api_rm_BridgeNfIptables
[28.x backport] api: docs: remove deprecated BridgeNfIptables, BridgeNfIp6tables
v28.5.0-rc.1
2025-09-25 11:25:46 +00:00
Sebastiaan van Stijn
1096e39142 api: docs: remove deprecated BridgeNfIptables, BridgeNfIp6tables
The `BridgeNfIptables` and `BridgeNfIp6tables` were removed in API v1.50
in commit 6505d3877c, and only returned in
lower API versions.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 0fb46d08ad)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-25 12:38:26 +02:00