Skip to content

[19.03 backport] Update containerd v1.4.4, runc v1.0.0-rc93#42015

Closed
thaJeztah wants to merge 10 commits into
moby:19.03from
thaJeztah:19.03_backport_bump_runc_binary
Closed

[19.03 backport] Update containerd v1.4.4, runc v1.0.0-rc93#42015
thaJeztah wants to merge 10 commits into
moby:19.03from
thaJeztah:19.03_backport_bump_runc_binary

Conversation

@thaJeztah

@thaJeztah thaJeztah commented Feb 12, 2021

Copy link
Copy Markdown
Member

So that the static binaries will have the same version of containerd as will be
installed when installing deb/rpm packages. Containerd 1.3 is also reaching EOL
in a few days.

Not sure we'll do this, so opening as draft

# revert https://github.com/moby/moby/pull/41731 [19.03] update containerd binary to v1.3.9 (address CVE-2020-15257)
git revert -s -S d3c550633005b8533683c7b9119625241d7cd55b 1babdf81e764c63a53c99dddaf08a9953ae2da16

# https://github.com/moby/moby/pull/40982 update containerd binary to v1.4.0
git cherry-pick -s -S -x 15292d7abfde0d934e4d30d8b19ca1ffb6d8d391

# https://github.com/moby/moby/pull/41450 update containerd vendor and binary to v1.4.1 (only binary)
git cherry-pick -s -S -x 1371a629d53a7c3639f1b12522a3a4021f5644b8

# https://github.com/moby/moby/pull/41718 update containerd binary to v1.4.2
git cherry-pick -s -S -x 703951197c3338631ee0529dd9dd814d16f037f0

# https://github.com/moby/moby/pull/41732 update containerd binary to v1.4.3 (CVE-2020-15257)
git cherry-pick -s -S -x 0a8c7692683cdaa14dc69c26155ec3d3751dbd11

# https://github.com/moby/moby/pull/41025 update runc binary to v1.0.0-rc91
git cherry-pick -s -S -x 91ca3e7a8dbc161b99ddf82c61812e7123865ed8

# https://github.com/moby/moby/pull/41317 Update runc binary to v1.0.0-rc92
git cherry-pick -s -S -x 2c7b48decda3335d96301285d25553d589e84801

# https://github.com/moby/moby/pull/41994 Bump runc binary v1.0.0-rc93
git cherry-pick -s -S -x 28e5a3c5a4db5d413d0834f432e8bebde62b0d74

# https://github.com/moby/moby/pull/42121 update containerd binary to v1.4.4
git cherry-pick -s -S -x 1a493934033919b91c4e471638ac1a8bbc5792c5

thaJeztah and others added 9 commits February 12, 2021 12:10
This reverts commit d3c5506.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
This reverts commit 1babdf8.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
full diff: containerd/containerd@v1.4.0...v1.4.1

Welcome to the v1.4.1 release of containerd!

The first patch release for `containerd` 1.4 includes a fix for v1 shims hanging
on exit and exec when the log pipe fills up along with other minor changes.

Notable Updates:

* Always consume shim logs to prevent logs in the shim from blocking
* Fix error deleting v2 bundle directory when removing rootfs returns `ErrNotExist`
* Fix metrics monitoring of v2 runtime tasks
* Fix incorrect stat for Windows containers
* Fix devmapper device deletion on rollback
* Update seccomp default profile

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit 1371a62)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
NOTE: the Dockerfile currently uses a single version of Golang for all
      stages. This means that currently, all binaries are built with Go
      1.13.x, including the containerd binary; upstream containerd switched
      to use Go 1.15.

full diff: containerd/containerd@v1.4.1...v1.4.2

Release notes:

Welcome to the v1.4.2 release of containerd!
------------------------------------------------------

The second patch release for containerd 1.4 includes multiple minor fixes
and updates.

Notable Updates

- Fix bug limiting the number of layers by default containerd/cri#1602
- Fix selinux shared memory issue by relabeling /dev/shm containerd/cri#1605
- Fix unknown state preventing removal of containers containerd/containerd#4656
- Fix nil pointer error when restoring checkpoint containerd/containerd#4754
- Improve image pull performance when using HTTP 1.1 containerd/containerd#4653
- Update default seccomp profile for pidfd containerd/containerd#4730
- Update Go to 1.15

Windows

- Fix integer overflow on Windows containerd/containerd#4589
- Fix lcow snapshotter to read trailing tar data containerd/containerd#4628

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit 7039511)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
full diff: containerd/containerd@v1.4.2...v1.4.3

Release notes:

Welcome to the v1.4.3 release of containerd!

The third patch release for containerd 1.4 is a security release to
address CVE-2020-15257. See GHSA-36xw-fx78-c5r4 for more details:

GHSA-36xw-fx78-c5r4

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit 0a8c769)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
release note: https://github.com/opencontainers/runc/releases/tag/v1.0.0-rc91

vendored library isn't updated in this commit (waiting for containerd to vendor runc rc91)

Signed-off-by: Akihiro Suda <[email protected]>
(cherry picked from commit 91ca3e7)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Jintao Zhang <[email protected]>
(cherry picked from commit 2c7b48d)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
full diff: opencontainers/runc@v1.0.0-rc92...v1.0.0-rc93
release notes: https://github.com/opencontainers/runc/releases/tag/v1.0.0-rc93

Release notes for runc v1.0.0-rc93
-------------------------------------------------

This is the last feature-rich RC release and we are in a feature-freeze until
1.0. 1.0.0~rc94 will be released in a few weeks with minimal bug fixes only,
and 1.0.0 will be released soon afterwards.

- runc's cgroupv2 support is no longer considered experimental. It is now
  believed to be fully ready for production deployments. In addition, runc's
  cgroup code has been improved:
    - The systemd cgroup driver has been improved to be more resilient and
      handle more systemd properties correctly.
    - We now make use of openat2(2) when possible to improve the security of
      cgroup operations (in future runc will be wholesale ported to libpathrs to
      get this protection in all codepaths).
- runc's mountinfo parsing code has been reworked significantly, making
  container startup times significantly faster and less wasteful in general.
- runc now has special handling for seccomp profiles to avoid making new
  syscalls unusable for glibc. This is done by installing a custom prefix to
  all seccomp filters which returns -ENOSYS for syscalls that are newer than
  any syscall in the profile (meaning they have a larger syscall number).

  This should not cause any regressions (because previously users would simply
  get -EPERM rather than -ENOSYS, and the rule applied above is the most
  conservative rule possible) but please report any regressions you find as a
  result of this change -- in particular, programs which have special fallback
  code that is only run in the case of -EPERM.
- runc now supports the following new runtime-spec features:
    - The umask of a container can now be specified.
    - The new Linux 5.9 capabilities (CAP_PERFMON, CAP_BPF, and
      CAP_CHECKPOINT_RESTORE) are now supported.
    - The "unified" cgroup configuration option, which allows users to explicitly
      specify the limits based on the cgroup file names rather than abstracting
      them through OCI configuration. This is currently limited in scope to
      cgroupv2.
- Various rootless containers improvements:
    - runc will no longer cause conflicts if a user specifies a custom device
      which conflicts with a user-configured device -- the user device takes
      precedence.
    - runc no longer panics if /sys/fs/cgroup is missing in rootless mode.
- runc --root is now always treated as local to the current working directory.
- The --no-pivot-root hardening was improved to handle nested mounts properly
  (please note that we still strongly recommend that users do not use
  --no-pivot-root -- it is still an insecure option).
- A large number of code cleanliness and other various cleanups, including
  fairly large changes to our tests and CI to make them all run more
  efficiently.

For packagers the following changes have been made which will have impact on
your packaging of runc:

- The "selinux" and "apparmor" buildtags have been removed, and now all runc
  builds will have SELinux and AppArmor support enabled. Note that "seccomp"
  is still optional (though we very highly recommend you enable it).
- make install DESTDIR= now functions correctly.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit 28e5a3c)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah thaJeztah added this to the 19.03.16 milestone Feb 12, 2021
@thaJeztah thaJeztah changed the title [19.03] Update containerd v1.4.3, runc v1.0.0-rc93 [19.03 backport] Update containerd v1.4.3, runc v1.0.0-rc93 Feb 12, 2021
full diff: containerd/containerd@v1.4.3...v1.4.4

Release notes:

The fourth patch release for `containerd` 1.4 contains a fix for CVE-2021-21334
along with various other minor issues.
See [GHSA-36xw-fx78-c5r4](GHSA-36xw-fx78-c5r4)
for more details related to CVE-2021-21334.

Notable Updates

- Fix container create in CRI to prevent possible environment variable leak between containers
- Update shim server to return grpc NotFound error
- Add bounds on max `oom_score_adj` value for shim's AdjustOOMScore
- Update task manager to use fresh context when calling shim shutdown
- Update Docker resolver to avoid possible concurrent map access panic
- Update shim's log file open flags to avoid containerd hang on syscall open
- Fix incorrect usage calculation

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit 1a49393)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah
thaJeztah force-pushed the 19.03_backport_bump_runc_binary branch from bf51977 to f2fc340 Compare March 23, 2021 13:02
@thaJeztah thaJeztah changed the title [19.03 backport] Update containerd v1.4.3, runc v1.0.0-rc93 [19.03 backport] Update containerd v1.4.4, runc v1.0.0-rc93 Mar 24, 2021
@renmaosheng

Copy link
Copy Markdown

@thaJeztah do you when this change will be merged? thanks

@thaJeztah

Copy link
Copy Markdown
Member Author

It's unlikely that more 19.03.x releases will be done, but if you install docker 19.03 from deb or rpm packages, you can install containerd 1.4 to go with it.

@renmaosheng

Copy link
Copy Markdown

Thanks thaJeztah. A follow-up question, do we plan to fix this CVE on 19.03 branch? GHSA-c3xm-pvg7-gh7r

@renmaosheng

Copy link
Copy Markdown

@thaJeztah could we use containerd v1.4.6 with runc 1.0.0-rc95 for docker 19.03? do you plan to upgrade for the docker 19.03 version? thanks a lot.

@thaJeztah

Copy link
Copy Markdown
Member Author

If you install deb or rpm packages you can update the containerd.io package, which should give you containerd v1.4.6 and runc v1.0.0-rc95. This PR doesn't need to be merged to get those (it would only be needed for the static binaries, which bundle containerd and runc in the same .tar.gz)

@AkihiroSuda

Copy link
Copy Markdown
Member

Can we close?

@thaJeztah

Copy link
Copy Markdown
Member Author

I'm closing this PR, as 19.03 has not been maintained for 2 Years, and there are no plans for more 19.03.x patch releases.

@thaJeztah thaJeztah closed this Mar 5, 2022
@thaJeztah
thaJeztah deleted the 19.03_backport_bump_runc_binary branch March 5, 2022 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants