CVE-2020-16120 json
Unprivileged overlay + shiftfs read access
published 2021-02-10 5 y ago modified 2026-06-17 4 mo ago also EUVD-2020-8086
- cvss
- 5.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 36%
- public exploits
- 0
- none known
Summary
Overlayfs did not properly perform permission checking when copying up files in an overlayfs and could be exploited from within a user namespace, if, for example, unprivileged user namespaces were allowed. It was possible to have a file not readable by an unprivileged user to be copied to a mountpoint controlled by the user, like a removable device. This was introduced in kernel version 4.19 by commit d1d04ef ("ovl: stack file ops"). This was fixed in kernel version 5.8 by commits 56230d9 ("ovl: verify permissions in ovl_path_open()"), 48bd024 ("ovl: switch to mounter creds in readdir") and 05acefb ("ovl: check permission to open real file"). Additionally, commits 130fdbc ("ovl: pass correct flags for opening real directory") and 292f902 ("ovl: call secutiry hook in ovl_real_ioctl()") in kernel 5.8 might also be desired or necessary. These additional commits introduced a regression in overlay mounts within user namespaces which prevented access to files with ownership outside of the user namespace. This regression was mitigated by subsequent commit b6650da ("ovl: do not fail because of O_NOATIMEi") in kernel 5.11.
Patch / fix
- Linux kernel Linux kernel 5.11.0
- linux Debian 14, Debian 13, Debian 12 5.8.7-1
debian advisories DEBIAN-CVE-2020-16120
- linux Ubuntu 18.04 LTS 4.15.0-121.123
- linux Ubuntu 20.04 LTS 5.4.0-51.56
- linux-aws Ubuntu 18.04 LTS 4.15.0-1086.91
- linux-aws Ubuntu 20.04 LTS 5.4.0-1028.29
- linux-gcp Ubuntu 16.04 LTS 4.15.0-1086.98~16.04.1
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1028.29
- linux-hwe Ubuntu 16.04 LTS 4.15.0-120.122~16.04.1
- linux-hwe Ubuntu 18.04 LTS 5.3.0-68.63
ubuntu advisories UBUNTU-CVE-2020-16120
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-syms SLES for SAP 12 SP4, SLES 12 SP4-LTSS, OpenStack Cloud Crowbar 9 +1 more 4.12.14-95.65.1
- kernel-source SLES for SAP 12 SP4, SLES 12 SP4-LTSS, OpenStack Cloud Crowbar 9 +1 more 4.12.14-95.65.1
- kernel-default SLES for SAP 12 SP4, SLES 12 SP4-LTSS, SLE Live Patching 12 SP4 +3 more 4.12.14-95.65.1
- kernel-syms SLES for SAP 15, SLES 15-LTSS, SLE High Performance Computing 15-LTSS +1 more 4.12.14-150.63.1
- kernel-source SLES for SAP 15, SLES 15-LTSS, SLE High Performance Computing 15-LTSS +1 more 4.12.14-150.63.1
- kernel-default SLES for SAP 15, SLES 15-LTSS, SLE Live Patching 15 +3 more 4.12.14-150.63.1
- kernel-vanilla SLES for SAP 15, SLES 15-LTSS, SLE High Performance Computing 15-LTSS +1 more 4.12.14-150.63.1
- kernel-obs-build SLES for SAP 15, SLES 15-LTSS, SLE High Performance Computing 15-LTSS +1 more 4.12.14-150.63.1
suse advisories SUSE-SU-2020:3544-1SUSE-SU-2020:3532-1SUSE-SU-2020:3522-1SUSE-SU-2020:3513-1SUSE-SU-2020:3512-1SUSE-SU-2020:3491-1
- kernel-rt openSUSE Leap 15.2 5.3.18-lp152.3.5.1
- kernel-syms-rt openSUSE Leap 15.2 5.3.18-lp152.3.5.1
- kernel-rt_debug openSUSE Leap 15.2 5.3.18-lp152.3.5.1
- kernel-source-rt openSUSE Leap 15.2 5.3.18-lp152.3.5.1
- kernel-default-base openSUSE Leap 15.2 5.3.18-lp152.50.1.lp152.8.10.1
- kernel-syms openSUSE Leap 15.2 5.3.18-lp152.50.1
- kernel-obs-qa openSUSE Leap 15.2 5.3.18-lp152.50.1
- kernel-source openSUSE Leap 15.2 5.3.18-lp152.50.1
opensuse advisories openSUSE-SU-2021:0242-1openSUSE-SU-2020:2112-1openSUSE-SU-2020:1906-1
- kernel CBL-Mariner 2.0 5.10.78.1-1
azure linux advisories AZL-6522
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- linux Arch Linux 5.8.arch1-1
arch linux advisories AVG-1242
- launchpad.net/bugs/1894980 advisory
- git.kernel.org/linus/56230d956739b9cb1cbde439d76227d77979a04d advisory
- git.kernel.org/linus/48bd024b8a40d73ad6b086de2615738da0c7004f advisory
- git.kernel.org/linus/05acefb4872dae89e772729efb194af754c877e8 advisory
- git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52 advisory
- git.kernel.org/linus/b6650dab404c701d7fe08a108b746542a934da84 advisory
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-16120 updated cvss 4.1
kernel: incorrect unprivileged overlayfs permission checking may lead to information disclosure
-
Red Hat Enterprise MRG 2 kernelaffected: workaround, no fix planned “Will not fix”
-
Red Hat Enterprise Linux 5 kernel Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, kernel-alt, python-perf, +9 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.42% chance of exploitation in the next 30 days, higher than 36% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.1 | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N |
| NVD | 3.1 | 4.4 | CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N |
| NVD | 2.0 | 2.1 | AV:L/AC:L/Au:N/C:P/I:N/A:N |
Affected products
- Linux kernel Linux kernel
Classification
- Weakness
-
- CWE-266 Incorrect Privilege Assignment
- Technology feeds
References
-
launchpad.net
/bugs/1894980
vendor-advisory, issue-tracking, patch, third-party-advisory
-
git.kernel.org
/linus/56230d956739b9cb1cbde439d76227d77979a04d
patch, third-party-advisory
-
git.kernel.org
/linus/48bd024b8a40d73ad6b086de2615738da0c7004f
patch, third-party-advisory
-
git.kernel.org
/linus/05acefb4872dae89e772729efb194af754c877e8
patch, third-party-advisory
-
git.kernel.org
/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52
patch, third-party-advisory
-
git.kernel.org
/linus/b6650dab404c701d7fe08a108b746542a934da84
patch, third-party-advisory
-
ubuntu.com
/USN-4576-1
vendor-advisory, third-party-advisory
-
ubuntu.com
/USN-4577-1
vendor-advisory, third-party-advisory
-
ubuntu.com
/USN-4578-1
vendor-advisory, third-party-advisory
-
launchpad.net
/bugs/1900141
vendor-advisory, issue-tracking, third-party-advisory
-
openwall.com
/lists/oss-security/2020/10/14/2
mailing-list, third-party-advisory
Sources
- CVE List CVE-2020-16120
- NVD CVE-2020-16120
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.