8.4

CVE-2026-89560

landlock: Require LANDLOCK_ACCESS_FS_MAKE_REG for whiteout creation

In the Linux kernel, the following vulnerability has been resolved:

landlock: Require LANDLOCK_ACCESS_FS_MAKE_REG for whiteout creation

Whiteout objects are used in the upper layer of an OverlayFS to
indicate that the file with this name does not exist in the unified
view, even if it is present in one of the lower layer file systems.

For the userspace implementations of OverlayFS (fuse-overlayfs),
whiteout objects can be created from userspace as well:

* mknod(2) with S_IFCHR and makedev(0, 0)
* renameat2(2) with RENAME_WHITEOUT,
  creating the whiteout in the old place of the moved file.

This commit guards whiteout creation in both of these cases with
LANDLOCK_ACCESS_FS_MAKE_REG.  Whiteout objects are *not* considered
character devices and are not bound to a driver.

LANDLOCK_ACCESS_FS_MAKE_REG describes the same permission class as a
whiteout object: creating one is the only S_IFCHR creation that the VFS
exempts from CAP_MKNOD, so it is as unprivileged as creating a regular
file, while LANDLOCK_ACCESS_FS_MAKE_CHAR and
LANDLOCK_ACCESS_FS_MAKE_BLOCK keep meaning the creation of devices that
expose a kernel interface [1].

For the mknod(2) case, introduce a Landlock erratum.  The creation of
whiteout objects through mknod(2) was previously guarded using
LANDLOCK_ACCESS_FS_MAKE_CHAR, and it is now guarded using
LANDLOCK_ACCESS_FS_MAKE_REG.

For the renameat2(2) case, fix a bug: Before this commit, renameat2(2)
with RENAME_WHITEOUT would create a directory entry even when all
LANDLOCK_ACCESS_FS_MAKE_* rights were denied.

This does not affect normal renames within layered OverlayFS mounts:
When doing a regular rename() on a mounted fuse-overlayfs, it is the
fuse-overlayfs daemon that exercises renameat2() with RENAME_WHITEOUT,
and only the Landlock domain of that daemon is checked there.

Depends-on: 49c9e09d9610 ("landlock: Fix handling of disconnected directories")
Depends-on: fe72ce6710cb ("landlock: Add errata documentation section")
[mic: Record why LANDLOCK_ACCESS_FS_MAKE_REG is the matching right, and
add link(2) to the user doc]
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < 39fc16597715125529df8f94e016fb00836ee3c1
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < d739e32318479086efb8a6bcf5d37cf341b51f8f
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < dfb10d989056181168ebc16781a8f39520e33200
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < efb4f24fc2b9bcef1c41ff3392894f1fa8fba2a0
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < 627ce4902df1d737e99306daae5a87c68b876d16
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < 0c3204aacbe8c07f9e87e3028f28ec6c166a1075
Status affected
Version cb2c7d1a1776057c9a1f48ed1250d85e94d4850d
Version < 672fa082d48b21e1fb62cdb184fee41513e53421
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.13
Status affected
Version 0
Version < 5.13
Status unaffected
Version <= 5.15.*
Version 5.15.222
Status unaffected
Version <= 6.1.*
Version 6.1.188
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.110
Status unaffected
Version <= 6.18.*
Version 6.18.50
Status unaffected
Version <= 7.2.*
Version 7.2.4
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.12% 0.024
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 8.4 2 5.8
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/627ce4902df1d737e99306daae5a87c68b876d16
https://git.kernel.org/stable/c/0c3204aacbe8c07f9e87e3028f28ec6c166a1075
https://git.kernel.org/stable/c/672fa082d48b21e1fb62cdb184fee41513e53421
https://git.kernel.org/stable/c/d739e32318479086efb8a6bcf5d37cf341b51f8f
https://git.kernel.org/stable/c/dfb10d989056181168ebc16781a8f39520e33200
https://git.kernel.org/stable/c/efb4f24fc2b9bcef1c41ff3392894f1fa8fba2a0
https://git.kernel.org/stable/c/39fc16597715125529df8f94e016fb00836ee3c1