CVE-2019-16884 Incorrect Authorization in runc
A malicious Docker image can bypass AppArmor restrictions by mounting over /proc due to incorrect mount target checks in runc.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2019-16884?
CVE-2019-16884 is a high-severity vulnerability in Canonical Ubuntu Linux, published on 25 Sep 2019. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
runc through 1.0.0-rc8, as used in Docker through 19.03.2-ce and other products, allows AppArmor restriction bypass because libcontainer/rootfs_linux.go incorrectly checks mount targets, and thus a malicious Docker image can mount over a /proc directory.
Weakness: CWE-863
Which versions are affected by CVE-2019-16884?
6 open source packages ship an affected version, including github.com/opencontainers/selinux and github.com/opencontainers/runc. It affects 10 products.
| Package | Affected | Fixed in |
|---|---|---|
github.com/opencontainers/selinux Go | All versions | 1.3.1-0.20190929122143-5215b1806f52 |
github.com/opencontainers/selinux Go | All versions | 1.3.1-0.20190929122143-5215b1806f52 |
github.com/opencontainers/selinux Go | All versions | 1.3.1-0.20190929122143-5215b1806f52 |
github.com/opencontainers/runc Go | All versions | 1.0.0-rc8.0.20190930145003-cad42f6e0932 |
github.com/opencontainers/runc Go | All versions | 1.0.0-rc8.0.20190930145003-cad42f6e0932 |
github.com/opencontainers/runc Go | All versions | 1.0.0-rc8.0.20190930145003-cad42f6e0932 |
Linux distribution packages (30)
runc Red Hat:openshift:4.1::el8 | All versions | 0:1.0.0-62.rc8.rhaos4.1.git3cbe540.el8 |
runc-debuginfo Red Hat:openshift:4.1::el8 | All versions | 0:1.0.0-62.rc8.rhaos4.1.git3cbe540.el8 |
runc-debugsource Red Hat:openshift:4.1::el8 | All versions | 0:1.0.0-62.rc8.rhaos4.1.git3cbe540.el8 |
runc Red Hat:openshift:4.2::el8 | All versions | 0:1.0.0-63.rc8.el8 |
runc-debuginfo Red Hat:openshift:4.2::el8 | All versions | 0:1.0.0-63.rc8.el8 |
runc-debugsource Red Hat:openshift:4.2::el8 | All versions | 0:1.0.0-63.rc8.el8 |
runc Red Hat:rhel_extras_other:7 | All versions | 0:1.0.0-67.rc10.el7_8 |
runc-debuginfo Red Hat:rhel_extras_other:7 | All versions | 0:1.0.0-67.rc10.el7_8 |
containerd SUSE:Linux Enterprise Module for Containers 12 | All versions | 1.2.10-16.26.1 |
docker SUSE:Linux Enterprise Module for Containers 12 | All versions | 19.03.5_ce-98.51.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 12 | All versions | 1.0.0rc8+gitr3826_425e105d5a03-1.32.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 12 | All versions | 1.0.0rc8+gitr3917_3e425f80a8c9-1.35.1 |
golang-github-docker-libnetwork SUSE:Linux Enterprise Module for Containers 12 | All versions | 0.7.0.1+gitr2877_3eb39382bfa6-28.1 |
containerd SUSE:Linux Enterprise Module for Containers 15 | All versions | 1.2.10-5.19.1 |
docker SUSE:Linux Enterprise Module for Containers 15 | All versions | 19.03.5_ce-6.31.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 15 | All versions | 1.0.0rc8+gitr3826_425e105d5a03-6.24.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 15 | All versions | 1.0.0rc8+gitr3917_3e425f80a8c9-6.27.1 |
golang-github-docker-libnetwork SUSE:Linux Enterprise Module for Containers 15 | All versions | 0.7.0.1+gitr2877_3eb39382bfa6-4.18.1 |
containerd SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 1.2.10-5.19.1 |
docker SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 19.03.5_ce-6.31.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 1.0.0rc8+gitr3826_425e105d5a03-6.24.1 |
docker-runc SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 1.0.0rc8+gitr3917_3e425f80a8c9-6.27.1 |
golang-github-docker-libnetwork SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 0.7.0.1+gitr2877_3eb39382bfa6-4.18.1 |
runc SUSE:Linux Enterprise Module for Containers 15 SP1 | All versions | 1.0.0~rc8-1.6.1 |
docker-runc openSUSE:Leap 15.0 | All versions | 1.0.0rc8+gitr3826_425e105d5a03-lp150.5.28.1 |
containerd openSUSE:Leap 15.1 | All versions | 1.2.10-lp151.2.9.1 |
docker openSUSE:Leap 15.1 | All versions | 19.03.5_ce-lp151.2.15.1 |
docker-runc openSUSE:Leap 15.1 | All versions | 1.0.0rc8+gitr3826_425e105d5a03-lp151.3.9.1 |
docker-runc openSUSE:Leap 15.1 | All versions | 1.0.0rc8+gitr3917_3e425f80a8c9-lp151.3.12.1 |
golang-github-docker-libnetwork openSUSE:Leap 15.1 | All versions | 0.7.0.1+gitr2877_3eb39382bfa6-lp151.2.9.1 |
Products include Canonical Ubuntu Linux, Docker Docker, Fedoraproject Fedora, Linuxfoundation Runc, Opensuse Leap, Redhat Enterprise Linux and 4 more.
How do I fix CVE-2019-16884?
Upgrade github.com/opencontainers/selinux to 1.3.1-0.20190929122143-5215b1806f52 or later.
Is CVE-2019-16884 being exploited?
There is no known exploitation of CVE-2019-16884 in the wild and no public exploit code.
Other vulnerabilities in Canonical Ubuntu Linux
Sources
Also known as CLEANSTART-2025-LA45180, CLEANSTART-2026-FJ66856, DEBIAN-CVE-2019-16884, DLA-3322-1, GHSA-fgv8-vj5c-2ppq, GO-2021-0085 and 13 more.