Arch Linux Security Advisory ASA-202012-8
=========================================

Severity: High
Date    : 2020-12-05
CVE-ID  : CVE-2020-15257
Package : containerd
Type    : privilege escalation
Remote  : No
Link    : https://security.archlinux.org/AVG-1309

Summary
=======

The package containerd before version 1.4.3-1 is vulnerable to
privilege escalation.

Resolution
==========

Upgrade to 1.4.3-1.

# pacman -Syu "containerd>=1.4.3-1"

The problem has been fixed upstream in version 1.4.3.

Workaround
==========

If you are not providing the ability for untrusted users to start
containers in the same network namespace as the shim (typically the
"host" network namespace, for example with docker run --net=host or
hostNetwork: true in a Kubernetes pod) and run with an effective UID of
0, you are not vulnerable to this issue.

If you are running containers with a vulnerable configuration, you can
deny access to all abstract sockets with AppArmor by adding a line
similar to deny unix [email protected]**, to your policy.

It is best practice to run containers with a reduced set of privileges,
with a non-zero UID, and with isolated namespaces. The containerd
maintainers strongly advise against sharing namespaces with the host.
Reducing the set of isolation mechanisms used for a container
necessarily increases that container's privilege, regardless of what
container runtime is used for running that container.

Description
===========

In containerd before versions 1.3.9 and 1.4.3, the containerd-shim API
is improperly exposed to host network containers. Access controls for
the shim's API socket verified that the connecting process had an
effective UID of 0, but did not otherwise restrict access to the
abstract Unix domain socket. This would allow malicious containers
running in the same network namespace as the shim, with an effective
UID of 0 but otherwise reduced privileges, to cause new processes to be
run with elevated privileges.

It should be noted that containers started with an old version of
containerd-shim should be stopped and restarted, as running containers
will continue to be vulnerable even after an upgrade.

Impact
======

A local attacker might be able to escalate privileges via a malicious
container running in the same network namespace as the shim.

References
==========

https://github.com/containerd/containerd/security/advisories/GHSA-36xw-fx78-c5r4
https://github.com/containerd/containerd/commit/428f10fd27eb1f9bd0b9aaa33a6579416c3a8b12
https://github.com/containerd/containerd/commit/ae3a64aa10d6d9b1567adce057778800c9cc45ed
https://security.archlinux.org/CVE-2020-15257