All vulnerabilities
CVE-2026-99173

Linux: eventfs: Free the eventfs_inode after an rcu grace period too

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in4586ef24ce390e8becb9f3e5852d5d3978b01c33Also 45fcfd5d9c10e0aa977ed5b9bd445707e01bb107, 2cd88c498ecff8e22bf4c397b8eb226db70ac343 and 2 moreCVE List
Published28 Oct 2026Updated 28 Oct 2026CVE List

What fixes it

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

eventfs: Free the eventfs_inode after an rcu grace period too

tracefs_d_revalidate() reads ->is_freed of the eventfs_inode that dentry->d_fsdata points to, and ->d_revalidate() is called in rcu pathwalk mode with nothing but rcu_read_lock() held. The dentry itself stays around for such a walker, but tracefs_d_release() drops its reference to the eventfs_inode when the dentry is killed, and release_ei() then frees it after a grace period of eventfs_srcu. An SRCU grace period doesn't wait for rcu_read_lock() sections, so the walker can read an eventfs_inode that is already gone.

With a pathwalk held up in tracefs_d_revalidate() while the dentry goes away:

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: <TASK> 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

Before commit 8e556432477e ("eventfs: Use SRCU for freeing eventfs_inodes") release_ei() used call_rcu(), which covered the walker, while eventfs_iterate() needs the SRCU grace period. Wait for both and chain call_rcu() from the SRCU callback.

Text from CVE List

Affected versions 12

  • Linuxaffected: 8e556432477e97ad6179c61b61a32bf5f1af2355 before 4586ef24ce390e8becb9f3e5852d5d3978b01c33CVE List
  • Linuxaffected: 8e556432477e97ad6179c61b61a32bf5f1af2355 before 45fcfd5d9c10e0aa977ed5b9bd445707e01bb107CVE List
  • Linuxaffected: 8e556432477e97ad6179c61b61a32bf5f1af2355 before 2cd88c498ecff8e22bf4c397b8eb226db70ac343CVE List
  • Linuxaffected: 2ef3d120d19faba3dec35b10a025b00db0284373CVE List
  • Linuxaffected: 384f383c5aa7bfd619d9f56a513a36e533428186CVE List
  • Linuxaffected: 6.6.46 before 6.7CVE List
  • Linuxaffected: 6.10.5 before 6.11CVE List
  • Linuxaffected: 6.11CVE List
  • Linuxunaffected: all versions before 6.11CVE List
  • Linuxunaffected: 6.18.59 through 6.18.*CVE List
  • Linuxunaffected: 7.2.13 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3