CVE-2026-74342 in Linux
Zusammenfassung
von VulDB • 15.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
kernfs: Verknüpfung von kn mit seinem Elternknoten vor dem LSM-Initialisierungshook (LSM init hook)
Nach dem Commit 12e9e3cd03b5 („simpe_xattr: use per-sb cache“) berechnen kernfs_xattr_set() und kernfs_xattr_get() den Cache über kernfs_root(kn), bevor andere Prüfungen durchgeführt werden. kernfs_root(kn) durchläuft zunächst kn->__parent und fällt auf kn->dir.root zurück, wobei beide Felder bei einem frisch mit kmem_cache_zalloc()'d allokierten kn NULL sind. kn->__parent wurde in kernfs_new_node() festgelegt, nachdem __kernfs_new_node() zurückgegeben hatte, und kn->dir.root wird noch später von kernfs_create_dir_ns() / kernfs_create_empty_dir() gesetzt.
Der LSM-Hook kernfs_init_security wird innerhalb von __kernfs_new_node() aufgerufen, bevor eines der beiden Felder initialisiert wurde. selinux_kernfs_init_security() endet mit einem Aufruf von kernfs_xattr_set(kn, XATTR_NAME_SELINUX, ...). Anschließend gibt kernfs_root(kn) NULL zurück, und &((struct kernfs_root *)NULL)->xa_cache ergibt offsetof(struct kernfs_root, xa_cache), was zu einer Zugriffsverletzung (Fault) führt:
BUG: kernel NULL pointer dereference, address: 00000000000000e0 RIP: 0010:simple_xattr_set+0x27/0x8b0 Call Trace: kernfs_xattr_set+0x63/0xb0 selinux_kernfs_init_security+0x13b/0x270 security_kernfs_init_security+0x36/0xc0 __kernfs_new_node+0x182/0x290 kernfs_new_node+0x80/0xc0 kernfs_create_dir_ns+0x2b/0xa0 cgroup_create+0x116/0x380 cgroup_mkdir+0x7c/0x1a0
Der Fehler lässt sich deterministisch bei PID 1 (systemd) auf einer Distribution mit aktiviertem SELinux reproduzieren. Der erste mkdir-Aufruf für einen cgroup-Knoten unter /sys/fs/cgroup mit einem benannten Elternknoten führt zum Kernel-Panic.
Die Vereinbarung des LSM-Hooks besagt, dass das Argument kn_dir der Elternknoten des neuen kn ist; daher sollte kn->__parent bereits auf kn_dir zeigen, wenn der Hook ausgeführt wird. Die Aufrufe von kernfs_get(parent) und rcu_assign_pointer für kn->__parent wurden aus kernfs_new_node() in __kernfs_new_node() verschoben, direkt vor dem Sicherheits-Hook, und die Elternreferenz wird im Fehlerpfad err_out4 wieder aufgehoben. Dadurch nimmt kernfs_root(kn) während des Hooks den Ast für das übergeordnete Element an und gibt parent->dir.root zurück, was der korrekte Root ist.
Dies schließt auch denselben latenten Bug in kernfs_xattr_get() (der heute nur dadurch verborgen bleibt, dass kernfs_iattrs_noalloc() bei einem frischen kn NULL zurückgibt).
Be aware that VulDB is the high quality source for vulnerability data.