gsd-2020-16120
Vulnerability from gsd
Modified
2023-12-13 01:21
Details
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.
Aliases
Aliases
{ GSD: { alias: "CVE-2020-16120", description: "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.", id: "GSD-2020-16120", references: [ "https://www.suse.com/security/cve/CVE-2020-16120.html", "https://ubuntu.com/security/CVE-2020-16120", "https://security.archlinux.org/CVE-2020-16120", "https://linux.oracle.com/cve/CVE-2020-16120.html", ], }, gsd: { metadata: { exploitCode: "unknown", remediation: "unknown", reportConfidence: "confirmed", type: "vulnerability", }, osvSchema: { aliases: [ "CVE-2020-16120", ], details: "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.", id: "GSD-2020-16120", modified: "2023-12-13T01:21:46.615179Z", schema_version: "1.4.0", }, }, namespaces: { "cve.org": { CVE_data_meta: { AKA: "", ASSIGNER: "security@ubuntu.com", DATE_PUBLIC: "2020-10-13T16:00:00.000Z", ID: "CVE-2020-16120", STATE: "PUBLIC", TITLE: "Unprivileged overlay + shiftfs read access", }, affects: { vendor: { vendor_data: [ { product: { product_data: [ { product_name: "Linux kernel", version: { version_data: [ { platform: "", version_affected: "<", version_name: "5.11-stable", version_value: "5.11.0", }, ], }, }, ], }, vendor_name: "Linux kernel", }, ], }, }, configuration: [], credit: [ { lang: "eng", value: "Giuseppe Scrivano", }, ], data_format: "MITRE", data_type: "CVE", data_version: "4.0", description: { description_data: [ { lang: "eng", value: "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.", }, ], }, exploit: [], generator: { engine: "Vulnogram 0.0.9", }, impact: { cvss: { attackComplexity: "HIGH", attackVector: "LOCAL", availabilityImpact: "NONE", baseScore: 5.1, baseSeverity: "MEDIUM", confidentialityImpact: "HIGH", integrityImpact: "NONE", privilegesRequired: "NONE", scope: "UNCHANGED", userInteraction: "NONE", vectorString: "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N", version: "3.1", }, }, problemtype: { problemtype_data: [ { description: [ { lang: "eng", value: "CWE-266 Incorrect Privilege Assignment", }, ], }, ], }, references: { reference_data: [ { name: "https://ubuntu.com/USN-4576-1", refsource: "UBUNTU", url: "https://ubuntu.com/USN-4576-1", }, { name: "https://ubuntu.com/USN-4577-1", refsource: "UBUNTU", url: "https://ubuntu.com/USN-4577-1", }, { name: "https://ubuntu.com/USN-4578-1", refsource: "UBUNTU", url: "https://ubuntu.com/USN-4578-1", }, { name: "https://www.openwall.com/lists/oss-security/2020/10/14/2", refsource: "CONFIRM", url: "https://www.openwall.com/lists/oss-security/2020/10/14/2", }, { name: "https://launchpad.net/bugs/1894980", refsource: "UBUNTU", url: "https://launchpad.net/bugs/1894980", }, { name: "https://launchpad.net/bugs/1900141", refsource: "UBUNTU", url: "https://launchpad.net/bugs/1900141", }, { name: "https://git.kernel.org/linus/56230d956739b9cb1cbde439d76227d77979a04d", refsource: "CONFIRM", url: "https://git.kernel.org/linus/56230d956739b9cb1cbde439d76227d77979a04d", }, { name: "https://git.kernel.org/linus/48bd024b8a40d73ad6b086de2615738da0c7004f", refsource: "CONFIRM", url: "https://git.kernel.org/linus/48bd024b8a40d73ad6b086de2615738da0c7004f", }, { name: "https://git.kernel.org/linus/05acefb4872dae89e772729efb194af754c877e8", refsource: "CONFIRM", url: "https://git.kernel.org/linus/05acefb4872dae89e772729efb194af754c877e8", }, { name: "https://git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52", refsource: "CONFIRM", url: "https://git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52", }, { name: "https://git.kernel.org/linus/b6650dab404c701d7fe08a108b746542a934da84", refsource: "CONFIRM", url: "https://git.kernel.org/linus/b6650dab404c701d7fe08a108b746542a934da84", }, ], }, solution: [], source: { advisory: "https://ubuntu.com/USN-4576-1", defect: [ "https://launchpad.net/bugs/1894980", ], discovery: "EXTERNAL", }, work_around: [], }, "nvd.nist.gov": { configurations: { CVE_data_version: "4.0", nodes: [ { children: [], cpe_match: [ { cpe23Uri: "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", cpe_name: [], versionEndExcluding: "5.11", vulnerable: true, }, ], operator: "OR", }, { children: [], cpe_match: [ { cpe23Uri: "cpe:2.3:o:canonical:ubuntu_linux:14.04:*:*:*:esm:*:*:*", cpe_name: [], vulnerable: true, }, { cpe23Uri: "cpe:2.3:o:canonical:ubuntu_linux:16.04:*:*:*:lts:*:*:*", cpe_name: [], vulnerable: true, }, { cpe23Uri: "cpe:2.3:o:canonical:ubuntu_linux:18.04:*:*:*:lts:*:*:*", cpe_name: [], vulnerable: true, }, { cpe23Uri: "cpe:2.3:o:canonical:ubuntu_linux:20.04:*:*:*:lts:*:*:*", cpe_name: [], vulnerable: true, }, ], operator: "OR", }, ], }, cve: { CVE_data_meta: { ASSIGNER: "security@ubuntu.com", ID: "CVE-2020-16120", }, data_format: "MITRE", data_type: "CVE", data_version: "4.0", description: { description_data: [ { lang: "en", value: "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.", }, ], }, problemtype: { problemtype_data: [ { description: [ { lang: "en", value: "NVD-CWE-Other", }, ], }, ], }, references: { reference_data: [ { name: "https://git.kernel.org/linus/b6650dab404c701d7fe08a108b746542a934da84", refsource: "CONFIRM", tags: [ "Patch", "Third Party Advisory", ], url: "https://git.kernel.org/linus/b6650dab404c701d7fe08a108b746542a934da84", }, { name: "https://launchpad.net/bugs/1894980", refsource: "UBUNTU", tags: [ "Issue Tracking", "Patch", "Third Party Advisory", ], url: "https://launchpad.net/bugs/1894980", }, { name: "https://ubuntu.com/USN-4578-1", refsource: "UBUNTU", tags: [ "Third Party Advisory", ], url: "https://ubuntu.com/USN-4578-1", }, { name: "https://www.openwall.com/lists/oss-security/2020/10/14/2", refsource: "CONFIRM", tags: [ "Mailing List", "Third Party Advisory", ], url: "https://www.openwall.com/lists/oss-security/2020/10/14/2", }, { name: "https://launchpad.net/bugs/1900141", refsource: "UBUNTU", tags: [ "Issue Tracking", "Third Party Advisory", ], url: "https://launchpad.net/bugs/1900141", }, { name: "https://ubuntu.com/USN-4576-1", refsource: "UBUNTU", tags: [ "Third Party Advisory", ], url: "https://ubuntu.com/USN-4576-1", }, { name: "https://git.kernel.org/linus/56230d956739b9cb1cbde439d76227d77979a04d", refsource: "CONFIRM", tags: [ "Patch", "Third Party Advisory", ], url: "https://git.kernel.org/linus/56230d956739b9cb1cbde439d76227d77979a04d", }, { name: "https://git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52", refsource: "CONFIRM", tags: [ "Patch", "Third Party Advisory", ], url: "https://git.kernel.org/linus/d1d04ef8572bc8c22265057bd3d5a79f223f8f52", }, { name: "https://ubuntu.com/USN-4577-1", refsource: "UBUNTU", tags: [ "Third Party Advisory", ], url: "https://ubuntu.com/USN-4577-1", }, { name: "https://git.kernel.org/linus/48bd024b8a40d73ad6b086de2615738da0c7004f", refsource: "CONFIRM", tags: [ "Patch", "Third Party Advisory", ], url: "https://git.kernel.org/linus/48bd024b8a40d73ad6b086de2615738da0c7004f", }, { name: "https://git.kernel.org/linus/05acefb4872dae89e772729efb194af754c877e8", refsource: "CONFIRM", tags: [ "Patch", "Third Party Advisory", ], url: "https://git.kernel.org/linus/05acefb4872dae89e772729efb194af754c877e8", }, ], }, }, impact: { baseMetricV2: { acInsufInfo: false, cvssV2: { accessComplexity: "LOW", accessVector: "LOCAL", authentication: "NONE", availabilityImpact: "NONE", baseScore: 2.1, confidentialityImpact: "PARTIAL", integrityImpact: "NONE", vectorString: "AV:L/AC:L/Au:N/C:P/I:N/A:N", version: "2.0", }, exploitabilityScore: 3.9, impactScore: 2.9, obtainAllPrivilege: false, obtainOtherPrivilege: false, obtainUserPrivilege: false, severity: "LOW", userInteractionRequired: false, }, baseMetricV3: { cvssV3: { attackComplexity: "LOW", attackVector: "LOCAL", availabilityImpact: "NONE", baseScore: 4.4, baseSeverity: "MEDIUM", confidentialityImpact: "HIGH", integrityImpact: "NONE", privilegesRequired: "HIGH", scope: "UNCHANGED", userInteraction: "NONE", vectorString: "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N", version: "3.1", }, exploitabilityScore: 0.8, impactScore: 3.6, }, }, lastModifiedDate: "2021-11-18T18:40Z", publishedDate: "2021-02-10T20:15Z", }, }, }
Log in or create an account to share your comment.
Security Advisory comment format.
This schema specifies the format of a comment related to a security advisory.
Title of the comment
Description of the comment
Loading…
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.