CVE-2026-99173 in Linux
Zusammenfassung
von VulDB • 28.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
eventfs: Freigabe des eventfs_inode nach einer RCU-Grace-Periode ebenfalls durchführen
tracefs_d_revalidate() liest ->is_freed von dem eventfs_inode, auf den dentry->d_fsdata zeigt, und ->d_revalidate() wird im rcu-Pfadwalk-Modus aufgerufen, wobei ausschließlich ein rcu_read_lock() gehalten wird. Das Dentry selbst bleibt für einen solchen Walker erhalten, aber tracefs_d_release() gibt seine Referenz zum eventfs_inode frei, wenn das Dentry zerstört wird, und release_ei() gibt es dann nach einer Grace-Periode von eventfs_srcu frei. Eine SRCU-Grace-Periode wartet nicht auf rcu_read_lock()-Abschnitte, sodass der Walker einen bereits verschwundenen eventfs_inode lesen kann.
Bei einem Pfadwalk, der in tracefs_d_revalidate() blockiert ist, während das Dentry verschwindet:
BUG: KASAN: slab-use-after-free in tracefs_d_revalidate+0x76/0x90 Read of size 1 at addr ff1100010152d8d0 by task walker/97 Call Trace: tracefs_d_revalidate+0x76/0x90 lookup_fast+0x320/0x640 path_lookupat+0x160/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 vfs_fstatat+0x4d/0x90 __do_sys_newfstatat+0xa0/0x100 do_syscall_64+0x10e/0x5e0 entry_SYSCALL_64_after_hwframe+0x77/0x7f [...]
Allocated by task 1: __kmalloc_cache_noprof+0x249/0x560 eventfs_create_dir+0x7a/0x590 event_create_dir+0x2fb/0xcf0 trace_add_event_call+0xbf/0x150 [...]
Freed by task 11: kfree+0x1db/0x5b0 srcu_invoke_callbacks+0x3a3/0x620 process_one_work+0x937/0x1810 worker_thread+0x4f1/0xd60
Vor dem Commit 8e556432477e ("eventfs: Use SRCU for freeing eventfs_inodes") verwendete release_ei() call_rcu(), was den Walker abdeckte, während eventfs_iterate() die SRCU-Grace-Periode benötigt. Warten Sie auf beide und verketten Sie call_rcu() vom SRCU-Callback aus.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.