Commit Graph

3305 Commits

Author SHA1 Message Date
CrazyMax
634d8d5cca vendor: update buildkit to v0.32.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-07-29 18:32:14 +02:00
CrazyMax
4596491115 hack: add patch to buildkit tests
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-07-27 19:00:06 +02:00
Paweł Gronowski
7235f9f8ca Merge pull request #53073 from thaJeztah/bump_docker_py
test/docker-py: Bump to 7.2.0
2026-07-15 16:35:28 +02:00
CrazyMax
346e8bfd66 hack: fix malformed ROOTLESSKIT_VERSION
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-07-15 11:24:09 +02:00
Sebastiaan van Stijn
6766137267 test/docker-py: Bump to 7.2.0
release notes: https://github.com/docker/docker-py/releases/tag/7.2.0
full diff: ae5dfe9111...7.2.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-14 19:52:42 +02:00
Sebastiaan van Stijn
3a41c21f63 Merge pull request #52318 from AkihiroSuda/ci-rootless-systemd
rootless: keep the cgroup mount for containers with --net=host; CI: add back rootless + systemd
2026-07-14 11:24:51 +02:00
Paweł Gronowski
d7ebce017b Merge pull request #53041 from vvoland/gotestsum-fmt
hack/integration-test: Use testname format
2026-07-13 20:06:43 +02:00
Sebastiaan van Stijn
d1c2e162eb Dockerfile: update RootlessKit to v3.0.2
release notes: https://github.com/rootless-containers/rootlesskit/releases/tag/v3.0.2
full diff: https://github.com/rootless-containers/rootlesskit/compare/v3.0.1...v3.0.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-10 18:23:18 +02:00
Akihiro Suda
d1d7735c30 hack: pass DBUS_SESSION_BUS_ADDRESS to the integration test suite
The test suite is executed via "env -i" with an explicit allow-list of
environment variables, so DBUS_SESSION_BUS_ADDRESS (exported by
.integration-daemon-start in rootless-systemd mode) never reached the
test binaries, nor the daemons they spawn via internal/testutil/daemon
("sudo --preserve-env"). Without it, runc inside those daemons cannot
detect the systemd user manager ("busctl --user" fails with the
per-daemon XDG_RUNTIME_DIR), assumes a rootful systemd, and fails to
create the container scope on the system bus:

    unable to start unit "docker-<id>.scope" ...: Permission denied

Also skip TestRunWithAlternativeContainerdShim in rootless-systemd
mode: the daemon only passes the SystemdCgroup option to the stock
runc runtime, so with an ad-hoc shim name runc falls back to the
cgroupfs driver and treats the systemd-style cgroupsPath as a literal
path, which cannot be created by a rootless daemon.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-07-10 04:49:48 +09:00
Akihiro Suda
438b5bea26 hack: run rootless daemon in a systemd user session when systemd is present
Previously, the rootless-systemd CI mode failed with:

    open /sys/fs/cgroup/user.slice/user-1000.slice/cgroup.controllers: no such file or directory

on every container start. The daemon auto-selects the systemd cgroup
driver (cgroup v2 + systemd detected), but the test harness launched
dockerd-rootless.sh via plain "sudo" with a fabricated XDG_RUNTIME_DIR,
so there was no systemd user session at all: no user-${uid}.slice, no
user@${uid}.service, and no user D-Bus socket for runc to talk to.
withRootless() (daemon/oci_linux.go) then failed reading the controllers
file at every container start.

Set up the environment the way it is documented for production rootless
installations instead:

- hack/make/.integration-daemon-start: when systemd is running, enable
  lingering for unprivilegeduser (which starts user@${uid}.service),
  use /run/user/${uid} as XDG_RUNTIME_DIR, and export
  DBUS_SESSION_BUS_ADDRESS so that runc can find the systemd user
  manager. The variable also propagates to the daemons spawned by the
  test suite (sudo --preserve-env in internal/testutil/daemon), whose
  XDG_RUNTIME_DIR points to a non-standard location.

- hack/dind-systemd: delegate the cpu/cpuset/io/memory/pids cgroup
  controllers to unprivileged users, matching
  https://docs.docker.com/engine/security/rootless/#limiting-resources

Fixes the "test (amd64, *, rootless-systemd)" CI failures tracked in
issue 44084.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-07-10 04:49:47 +09:00
Paweł Gronowski
658b20b06a hack/integration-test: Forward CI env var into test containers
gotestsum enables color output for known CI environments by checking
whether CI is set first, then looking for a vendor-specific variable
(GITHUB_ACTIONS, GITLAB_CI, etc.).

GITHUB_ACTIONS was already forwarded into the test containers, but CI
was not, so the check was never reached and gotestsum fell back to
isatty, which returns no-color for the non-TTY pipes used inside Docker.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-09 19:26:38 +02:00
Paweł Gronowski
2c299ea859 hack/integration-test: Use testname format
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-09 19:25:44 +02:00
Sebastiaan van Stijn
44c855a73e update to go1.26.5
go1.26.5 (released 2026-07-07) includes security fixes to the crypto/tls
and os packages, as well as bug fixes to the compiler, the runtime, the
go command, and the net, os, and syscall packages. See the Go 1.26.5
milestone on our issue tracker for details;

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

From the security announcement:

We have just released Go versions 1.26.5 and 1.25.12, minor point releases.

These releases include 2 security fixes following the security policy:

- os: Root escape via symlink plus trailing slash

  On Unix systems, opening a file in an os.Root improperly
  followed symlinks to locations outside of the Root when
  the final path component of the a path is a symbolic link
  and the path ends in /.

  For example, root.Open("symlink/") would open "symlink"
  even when "symlink" is a symbolic link pointing outside of the root.

  On Unix, openat(fd, path, O_NOFOLLOW) will follow symlinks
  in path when path ends in a /. Root failed to account for
  this behavior, permitting paths with a trailing / to escape.
  It now properly sanitizes the path parameter provided to openat.

  hanks to Mundur for reporting this issue.

  This is CVE-2026-39822 and Go issue https://go.dev/issue/79005.

- crypto/tls: Encrypted Client Hello privacy leak

  he Encrypted Client Hello implementation would leak the pre-shared key
  dentities during the handshake, allowing a passive network observer who can
  ollect handshakes to de-anonymize the hostname of the server, even when ECH was
  eing used.

  Thanks to Coia Prant (github.com/rbqvq) for reporting this issue.

  This is CVE-2026-42505 and Go issue https://go.dev/issue/79282.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-07 23:59:17 +02:00
Paweł Gronowski
2f5f9d08df Merge pull request #52995 from vvoland/gha-flaky-command
test-integration-flaky: Add /flaky-check=Test1,Test2 PR body directive
2026-07-06 11:33:36 +02:00
Paweł Gronowski
85a59999b2 hack: Fix set_repeat_timeout multiplying TIMEOUT on every repeat iteration
set_repeat_timeout is called inside run_test_integration, which is
itself invoked once per iteration by the repeat loop (TEST_REPEAT
times). Each call multiplied TIMEOUT by TEST_REPEAT again, so with
TEST_REPEAT=10 and TIMEOUT=10m the progression was:

iter 1: 100m, iter 2: 1000m, ..., iter 8: 1000000000m

Go's time.ParseDuration overflows on 1000000000m (≈ 6×10²² ns >
int64 max), producing:

invalid value "1000000000m" for flag -test.timeout: parse error

The multiplier (TEST_REPEAT) and the scaled value (100m) are both
correct; the problem is repeated application. Fix by moving the single
set_repeat_timeout call out of run_test_integration and into
hack/make/test-integration, directly before the repeat loop. That way
TIMEOUT is scaled exactly once regardless of how many iterations the
loop runs.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-06 10:24:30 +02:00
Sebastiaan van Stijn
71afcaea49 Merge pull request #50591 from thaJeztah/goodbye_old_friend
update (GOPATH) paths to use github.com/moby/moby/v2
2026-07-04 00:22:20 +02:00
Paweł Gronowski
64ea51f2fb test-integration-flaky: Add /flaky-check=Test1,Test2 PR body directive
Allows PR authors to stress-test specific integration tests for
flakiness even when the diff doesn't touch them.

Add a /flaky-check directive on its own line in the PR body:

/flaky-check=TestFoo,TestBar

The GHA integration-flaky job parses the directive from the PR body and
exports the names as FLAKY_EXTRA_TESTS, which the script appends to the
diff-detected set before running the stress loop.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-03 22:42:12 +02:00
Sebastiaan van Stijn
ffd43fa27a use /usr/src/moby instead, and no GOPATH
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-02 15:13:19 +02:00
Sebastiaan van Stijn
4b7a7687a5 update (GOPATH) paths to use github.com/moby/moby/v2
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-02 15:13:16 +02:00
Paweł Gronowski
5a7c430720 test-integration-flaky: Bump stress multiplier to 10x10 (100 runs)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-01 20:45:00 +02:00
Paweł Gronowski
78c2aa4fcc gha/dco: Pass origin branch
The DCO job runs inside an Alpine container and fetches the base
branch from VALIDATE_REPO unless VALIDATE_ORIGIN_BRANCH is set.

In forked runs that repository can point at a private upstream URL, so
the unauthenticated fetch fails with:

```
fatal: could not read Username for 'https://github.com': No such
device or address
```

Pass the pull request base SHA so the validator can resolve the
comparison point locally.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-25 17:17:19 +02:00
Mend Renovate
df4a64e487 Update docker/buildx-bin Docker tag to v0.35.0
Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-18 11:08:10 +02:00
Paweł Gronowski
39fe05769e test-integration-flaky: Stress modified tests too
Also run `test-integration-flaky` for changed existing tests.

Keep the old added-test detection as-is, and add modified-test detection
on top of it to avoid regressing the existing behavior.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-17 13:42:49 +02:00
Paweł Gronowski
f3169f92a3 test/docker-py: Fix swarm encrypted failure
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-12 15:43:03 +02:00
Sebastiaan van Stijn
d915dbd766 hack/dockerfiles: simplify install of tools
Follow-up to 4210ba07d9, which added the
"tool" directive, but kept the existing package references, which means
that installation would potentially happen multiple times.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-10 14:19:04 +02:00
Paweł Gronowski
9097ab1048 Merge pull request #52774 from vvoland/gha-pr-refs
gha/validate-pr: Reject GitHub references in commit messages
2026-06-10 14:04:00 +02:00
Paweł Gronowski
f5ea52aa17 gha/validate-pr: Reject GitHub references in commit messages
GitHub issue and PR references in commit messages become part of
persistent history and can create unintended cross-references.

Check commit subjects and bodies for shorthand references such as
<hash>123, moby/moby<hash>123 and GitHub issue or pull-request URLs.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-10 13:22:08 +02:00
Sebastiaan van Stijn
c6c8f97224 remove uses of legacy github.com/golang/protobuf/protoc-gen-go
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-09 15:41:01 +02:00
Sebastiaan van Stijn
4210ba07d9 remove internal/tools and use go.mod tools directive
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-09 13:39:47 +02:00
Rajnish Kumar
927f6bae16 test/docker-py: re-enable test_run_with_networking_config
The test was skipped because Container.run() returned stale container
state after 7bc56c5365 changed when the
short ID was added to Aliases. That behaviour is now stable and the
test passes against the current docker-py commit (059d371).

Signed-off-by: Rajnish Kumar <rajnishkumar448@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-06-05 16:33:45 +02:00
Paweł Gronowski
49742882d5 Merge pull request #52753 from vvoland/update-go
update to go1.26.4
2026-06-03 18:30:55 +02:00
Paweł Gronowski
c3967c40c0 update to go1.26.4
This release include 3 security fixes following the security policy:

- mime: quadratic complexity in WordDecoder.DecodeHeader

    Decoding a maliciously-crafted MIME header containing many invalid
    encoded-words could consume excessive CPU.
    The MIME decoder now better handles this case.

    Thanks to p4p3r (https://hackerone.com/p4p3r_hak) for reporting this issue.

    This is CVE-2026-42504 and Go issue https://go.dev/issue/79217.

- net/textproto: arbitrary input are included in errors without any escaping

    When returning errors, functions in the net/textproto package would
    include its input as part of the error, without any escaping. Note that
    said input is often controlled by external parties when using this
    package naturally. For example, a net/http client uses ReadMIMEHeader
    when parsing the headers it receive from a server.

    As a result, an attacker could inject arbitrary content into the error.
    Practically, this can result in an attacker injecting misleading
    content, terminal control bytes, etc. into a victim's output or logs.

    This is CVE-2026-42507 and Go issue https://go.dev/issue/79346

- crypto/x509: split candidate hostname only once

    (*x509.Certificate).VerifyHostname previously called matchHostnames in a loop
    over all DNS Subject Alternative Name (SAN) entries. This caused
    strings.Split(host, ".") to execute repeatedly on the same input hostname.

    With a large DNS SAN list, verification costs scaled quadratically based on the
    number of SAN entries multiplied by the hostname's label count. Because
    x509.Verify validates hostnames before building the certificate chain, this
    overhead occurred even for untrusted certificates.

    Thanks to Jakub Ciolek (https://ciolek.dev) for reporting this issue.

    This is CVE-2026-27145 and https://go.dev/issue/79694.

View the release notes for more information:
https://go.dev/doc/devel/release#go1.26.4

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-03 17:13:02 +02:00
Paweł Gronowski
635145d68a Merge pull request #52752 from vvoland/update-dockerpy
test/docker-py: Bump to master
2026-06-03 16:26:12 +02:00
Paweł Gronowski
96639c8461 test/docker-py: Bump to master
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-06-03 14:57:09 +02:00
Akihiro Suda
059d3f36ee Update RootlessKit (3.0.1)
https://github.com/rootless-containers/rootlesskit/releases/tag/v3.0.1

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-05-27 19:34:51 +09:00
Mend Renovate
af35f3716e chore(deps): update docker/buildx-bin docker tag to v0.34.1
Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-05-20 10:59:14 +02:00
Mend Renovate
bb71630486 chore(deps): update docker/buildx-bin docker tag to v0.34.0
Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-05-14 15:18:23 +02:00
CrazyMax
08eec0204c hack: authenticate BuildKit ref resolution
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-05-13 12:50:55 +02:00
Paweł Gronowski
4d815e43d2 Merge pull request #52585 from vvoland/fix-flaky-integration
gha: Fix test-integration-flaky
2026-05-11 13:52:59 +02:00
Paweł Gronowski
57db5dedd0 hack: Fix test-integration-flaky
Split the diff from the grep in the bundle so a failed diff is no longer
swallowed and misreported as "no new tests".

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-05-11 13:28:27 +02:00
CrazyMax
8bc239f340 hack: preserve pseudo-version hashes in buildkit-ref
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-05-11 09:59:14 +02:00
Paweł Gronowski
0fdc152a31 update to go1.26.3
This release include 11 security fixes:

- cmd/go: malicious module proxy can bypass checksum database

    A malicious module proxy could exploit a flaw in the go command's
    validation of module checksums to bypass checksum database validation.

    This vulnerability affects any user using an untrusted module proxy
    (GOMODPROXY) or checksum database (GOSUMDB).

    A malicious module proxy can serve altered versions of the Go toolchain.
    When selecting a different version of the Go toolchain than the
    currently installed toolchain (due to the GOTOOLCHAIN environment variable,
    or a go.work or go.mod with a toolchain line), the go command will download
    and execute a toolchain provided by the module proxy. A malicious module
    proxy can bypass checksum database validation for this downloaded
    toolchain.

    Since this vulnerability affects the security of toolchain downloads,
    setting GOTOOLCHAIN to a fixed version is not sufficient. You must upgrade
    your base Go toolchain.

    The go tool always validates the hash of a toolchain before executing it,
    so fixed versions will refuse to execute any cached, altered versions of the
    toolchain.

    The go tool trusts go.sum files to contain accurate hashes of the current
    module's dependencies. A malicious proxy exploiting this vulnerability to
    serve an altered module will have caused an incorrect hash to be recorded
    in the go.sum. Users who have configured a non-trusted GOPROXY can determine
    if they have been affected by running "rm go.sum ; go mod tidy ; go mod verify",
    which will revalidate all dependencies of the current module.

    The specific flaw in more detail:

    The go command consults the checksum database to validate downloaded modules,
    when a module is not listed in the go.sum file. It verifies that the module hash
    reported by the checksum database matches the hash of the downloaded module.
    If, however, the checksum database returns a successful response that contains
    no entry for the module, the go command incorrectly permitted validation to succeed.

    A module proxy may mirror or proxy the checksum database, in which case the go
    command will not connect to the checksum database directly. Checksums reported
    by the checksum database are cryptographically signed, so a malicious proxy
    cannot alter the reported checksum for a module. However, a proxy which returns
    an empty checksum response, or a checksum response for an unrelated module,
    could cause the go command to proceed as if a downloaded module has been validated.

    The go command now properly checks checksum database responses to ensure
    that the expected module signature is present, not just that if a signature is
    present it matches the expectation.

    Thanks to Mundur (https://github.com/M0nd0R) for reporting this issue.

    This is CVE-2026-42501 and Go issue https://go.dev/issue/79070.

- net/http/httputil: ReverseProxy forwards queries with more than urlmaxqueryparams parameters

    When used with a Rewrite function, or a Director function which parses query parameters,
    ReverseProxy sanitizes the forwarded request to remove query parameters which are not
    parsed by url.ParseQuery. ReverseProxy did not take ParseQuery's limit on the total number
    of query parameters (controlled by GODEBUG=urlmaxqueryparams=N) into account.
    This could permit ReverseProxy to forward a request containing a query parameter
    that was not visible to the Rewrite function.

    For example, the query "a1=x&a2=x&...&a10000=x&hidden=y" could forward the parameter
    "hidden=y" while hiding it from the proxy's Rewrite function.

    ReverseProxy now avoids forwarding parameters that exceed the ParseQuery limit.

    This is CVE-2026-39825 and Go issue https://go.dev/issue/78948.

- net: panic in Dial and LookupPort when handling NUL byte on Windows

    The Dial and LookupPort functions would panic on Windows when provided
    with an input containing a NUL (0). These functions now return an error
    rather than panicking.

    This is CVE-2026-39836 and Go issue https://go.dev/issue/79006.

- net/mail: quadratic string concatenation in consumePhrase

    Pathological inputs could cause DoS through consumePhrase
    when parsing an email address according to RFC 5322.

    This is CVE-2026-42499 and Go issue https://go.dev/issue/78987.

- net/mail: quadratic string concatentation in consumeComment

    Well-crafted inputs reaching ParseAddress, ParseAddressList,
    and ParseDate were able to trigger excessive CPU exhaustion
    and memory allocations.

    This is CVE-2026-39820 and Go issue https://go.dev/issue/78566.

- cmd/go: "go bug" follows symlinks in predictable temporary filenames

    The "go bug" command wrote to two files with predictable names in
    the system temporary directory (for example, "/tmp").

    An attacker with access to the temporary directory could create a
    symlink in one of these names, causing "go bug" to overwrite the
    target of the symlink.

    The "go bug" command now uses os.MkdirTemp to create a safe
    working directory.

    Thanks to Harshit Gupta (Mr HAX) for reporting this issue.

    This is CVE-2026-39819 and Go issue https://go.dev/issue/78584.

- cmd/go: "go tool pack" does not sanitize output paths

    The "go tool pack" subcommand is a minimal version of the Unix ar utility.
    It is used by the compiler as an internal tool with known-good inputs.

    The "pack" subcommand did not sanitize output filenames.
    When invoked to extract a malicious archive file, it could write
    files to arbitrary locations on the filesystem.

    The "pack" subcommand now refuses to extract files with names
    containing any directory components.

    Thanks to Harshit Gupta (Mr HAX) for reporting this issue.

    This is CVE-2026-39817 and Go issue https://go.dev/issue/78778.

- net/http: infinite loop in HTTP/2 transport when given bad SETTINGS_MAX_FRAME_SIZE

    When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of
    writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a
    value of 0.

    This allows potential DoS against a client by a malicious server. HTTP/2
    transport now properly checks that the received SETTINGS_MAX_FRAME_SIZE is
    valid.

    Thanks to Marwan Atia (marwansamir688@gmail.com) for reporting this issue.

    This is CVE-2026-33814 and Go issue https://go.dev/issue/78476.

- html/template: escaper bypass leads to XSS

    If a trusted template author were to write a
    tag containing an empty type attribute or a type
    attribute with an ASCII whitespace, the execution of
    the template would incorrectly escape any data passed
    into the block.

    Thanks to Mundur (https://github.com/M0nd0R) for reporting this issue.

    This is CVE-2026-39826 and Go issue https://go.dev/issue/78981.

- net: crash when handling long CNAME response

    When using LookupCNAME with the cgo DNS resolver,
    a very long CNAME response could trigger a double-free of C memory
    and a crash. The double-free has been fixed.

    Thanks to hamayanhamayan for reporting this issue.

    This is CVE-2026-33811 and Go issue https://go.dev/issue/78803.

- html/template: bypass of meta content URL escaping causes XSS

    CVE-2026-27142 fixed a vulnerability in which URLs were not
    correctly escaped inside of a tag's attribute.
    If the URL content were to insert ASCII whitespaces around the
    = rune inside of the attribute, the escaper would
    fail to similarly escape it, leading to XSS.

    Dynamic inputs to a tag's attribute are now
    whitespace sanitized prior to escaping.

    Thanks to Samy Ghannad for reporting this issue.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-05-07 19:13:15 +02:00
Sebastiaan van Stijn
a2d62b318e Merge pull request #52459 from thaJeztah/module_differ
ci: validate module-replace: ignore _test.go files
2026-04-27 15:03:00 +02:00
Akihiro Suda
ed50761bc4 Merge pull request #52463 from AkihiroSuda/rootlesskit-v3
hack/dockerfile/install: fix RootlessKit version
2026-04-26 05:20:20 +09:00
Akihiro Suda
eeec56601b hack/dockerfile/install: fix RootlessKit version
Follow-up to PR 52319, 52456

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-04-26 04:12:13 +09:00
Sebastiaan van Stijn
038086f408 ci: validate: remove old "default-seccomp" validation
The seccomp profile moved to github.com/moby/profiles/seccomp, so
is no longer generated here.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-04-25 18:33:45 +02:00
Sebastiaan van Stijn
e6b36ed6da ci: validate module-replace: ignore _test.go files
Test-files are not vendored, so when updated, it's not needed to
update vendoring.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-04-25 18:20:06 +02:00
Akihiro Suda
5249b1d165 Update RootlessKit (3.0.0)
- slirp4netns/vpnkit is no longer needed as gvisor-tap-vsock is now embedded in RootlessKit.
  slirp4netns/vpnkit is still used when installed.
- The `builtin` port driver can now correctly propagate the source IP, when
  `userland-proxy` is disabled.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-04-25 22:49:57 +09:00
Sebastiaan van Stijn
cdb3fc279d Dockerfile: update buildx to v0.33.0
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-04-16 00:45:09 +02:00
Sebastiaan van Stijn
3541b0d0fd update to Go 1.26.2
go1.26.2 (released 2026-04-07) includes security fixes to the go command,
the compiler, and the archive/tar, crypto/tls, crypto/x509, html/template,
and os packages, as well as bug fixes to the go command, the go fix command,
the compiler, the linker, the runtime, and the net, net/http, and net/url
packages. See the Go 1.26.2 milestone on our issue tracker for details;

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

From the security announce:

We have just released Go versions 1.26.2 and 1.25.9, minor point releases.

These releases include 10 security fixes following the security policy:

- os: Root.Chmod can follow symlinks out of the root on Linux

  On Linux, if the target of Root.Chmod is replaced with a symlink while
  the chmod operation is in progress, Chmod could operate on the target
  of the symlink, even when the target lies outside the root.

  The Linux fchmodat syscall silently ignores the AT_SYMLINK_NOFOLLOW flag,
  which Root.Chmod uses to avoid symlink traversal. Root.Chmod checks its
  target before acting and returns an error if the target is a symlink
  lying outside the root, so the impact is limited to cases where the
  target is replaced with a symlink between the check and operation.

  On Linux, Root.Chmod now uses the fchmodat2 syscall when available, and
  an workaround using /proc/self/fd otherwise.

  Thanks to Uuganbayar Lkhamsuren for reporting this issue.

  This is CVE-2026-32282 and Go issue https://go.dev/issue/78293.

- html/template: JS template literal context incorrectly tracked

  Context was not properly tracked across template branches for JS template
  literals, leading to possibly incorrect escaping of content when branches were
  used.

  Additionally template actions within JS template literals did not properly
  track
  the brace depth, leading to incorrect escaping being applied.

  These issues could cause actions within JS template literals to be incorrectly
  or improperly escaped, leading to XSS vulnerabilities.

  This only affects templates that use template actions within JS template
  literals.

  This is CVE-2026-32289 and Go issue https://go.dev/issue/78331.

- crypto/x509: excluded DNS constraints not properly applied to wildcard domains

  When verifying a certificate chain containing excluded DNS constraints, these
  constraints are not correctly applied to wildcard DNS SANs which use a
  different
  case than the constraint.

  For example, if a certificate contains the DNS name "*.example.com" and the
  excluded DNS name "EXAMPLE.COM", the constraint will not be applied.

  This only affects validation of otherwise trusted certificate chains, issued
  by
  a root CA in the VerifyOptions.Roots CertPool, or in the system certificate
  pool.

  This issue only affects Go 1.26.

  Thank you to Riyas from Saintgits College of Engineering, k1rnt, @1seal for
  reporting this issue.

  This is CVE-2026-33810 and Go issue https://go.dev/issue/78332.

- cmd/compile: no-op interface conversion bypasses overlap checking

  Previously, the compiler failed to unwrap pointers contained within
  a no-op interface conversion leading to an incorrect determination
  of a non-overlapping move.

  To prevent unsafe move operations, the compiler will now unwrap all
  such conversions before considering a move non-overlapping.

  Thank you to Jakub Ciolek - https://ciolek.dev/ for reporting this issue.

  This is CVE-2026-27144 and Go issue https://go.dev/issue/78371.

- cmd/compile: possible memory corruption after bound check elimination

  Previously, slices and arrays accessed using induction variables
  were sometimes incorrectly proved in-bound. If the induction variable
  used for indexing were to overflow or underflow, it could allow access
  to memory beyond the scope of the original slice or array.

  To prevent this behavior, the compiler ensures that any mutated induction
  variable that overflows/underflows with respect to its loop condition
  is not used for bound check elimination.

  Thank you to Jakub Ciolek - https://ciolek.dev/ for reporting this issue.

  This is CVE-2026-27143 and Go issue https://go.dev/issue/78333.

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

  tar.Reader could allocate an unbounded amount of memory when reading
  a maliciously-crafted archive containing a large number of sparse
  regions encoded in the "old GNU sparse map" format.

  We now limit both the number of old GNU sparse map extension blocks,
  and the total number of sparse file entries, regardless of encoding.

  Thanks to Colin Walters (wal...@verbum.org) who initially reported this issue.
  Thanks also to Uuganbayar Lkhamsuren (https://github.com/uug4na) and Jakub
  Ciolek
  who additionally reported this issue.

  This is CVE-2026-32288 and Go issue https://go.dev/issue/78301.

- crypto/tls: multiple key update handshake messages can cause connection to
  deadlock

  If one side of the TLS connection sends multiple key update messages
  post-handshake in a single record, the connection can deadlock, causing
  uncontrolled consumption of resources. This can lead to a denial of service.

  This only affects TLS 1.3.

  Thank you to Jakub Ciolek - https://ciolek.dev/ for reporting this issue.

  This is CVE-2026-32283 and Go issue https://go.dev/issue/78334.

- cmd/go: trust layer bypass when using cgo and SWIG

  A well-crafted SWIG source file could take advantage
  of a file-naming convention used inside the trust
  boundary of the cgo compiler. Doing so could result
  in arbitrary code execution during build time.

  SWIG files are disallowed from using this convention.

  Thank you to Juho Forsén of Mattermost for reporting this issue.

  This is CVE-2026-27140 and Go issue https://go.dev/issue/78335.

- crypto/x509: unexpected work during chain building

  During chain building, the amount of work that is done is not correctly
  limited
  when a large number of intermediate certificates are passed in
  VerifyOptions.Intermediates, which can lead to a denial of service. This
  affects
  both direct users of crypto/x509 and users of crypto/tls.

  Thank you to Jakub Ciolek - https://ciolek.dev/ for reporting this issue.

  This is CVE-2026-32280 and Go issue https://go.dev/issue/78282.

- crypto/x509: inefficient policy validation

  Validating certificate chains which use policies is unexpectedly inefficient
  when certificates in the chain contain a very large number of policy mappings,
  possibly causing denial of service.

  This only affects validation of otherwise trusted certificate chains, issued
  by
  a root CA in the VerifyOptions.Roots CertPool, or in the system certificate
  pool.

  Thank you to Jakub Ciolek - https://ciolek.dev/ for reporting this issue.

  This is CVE-2026-32281 and Go issue https://go.dev/issue/78281.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-04-08 00:43:19 +02:00