{"id":"CVE-2026-99173","title":"eventfs: Free the eventfs_inode after an rcu grace period too","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\neventfs: Free the eventfs_inode after an rcu grace period too\n\ntracefs_d_revalidate() reads ->is_freed of the eventfs_inode that\ndentry->d_fsdata points to, and ->d_rev…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 4586ef24ce390e8becb9f3e5852d5d3978b01c33","Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 45fcfd5d9c10e0aa977ed5b9bd445707e01bb107","Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 2cd88c498ecff8e22bf4c397b8eb226db70ac343","Linux 2ef3d120d19faba3dec35b10a025b00db0284373","Linux 384f383c5aa7bfd619d9f56a513a36e533428186","Linux >= 6.6.46 < 6.7","Linux >= 6.10.5 < 6.11","Linux 6.11"],"published":"2026-10-28","updated":"2026-10-28","sourceUpdated":"2026-10-28T10:35:28.017Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99173","references":[{"url":"https://git.kernel.org/stable/c/4586ef24ce390e8becb9f3e5852d5d3978b01c33"},{"url":"https://git.kernel.org/stable/c/45fcfd5d9c10e0aa977ed5b9bd445707e01bb107"},{"url":"https://git.kernel.org/stable/c/2cd88c498ecff8e22bf4c397b8eb226db70ac343"}],"tags":["cve.org"],"ingestedAt":"2026-10-28T11:09:40.384Z","slug":"CVE-2026-99173","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\neventfs: Free the eventfs_inode after an rcu grace period too\n\ntracefs_d_revalidate() reads ->is_freed of the eventfs_inode that\ndentry->d_fsdata points to, and ->d_revalidate() is called in rcu\npathwalk mode with nothing but rcu_read_lock() held. The dentry itself\nstays around for such a walker, but tracefs_d_release() drops its\nreference to the eventfs_inode when the dentry is killed, and\nrelease_ei() then frees it after a grace period of eventfs_srcu. An\nSRCU grace period doesn't wait for rcu_read_lock() sections, so the\nwalker can read an eventfs_inode that is already gone.\n\nWith a pathwalk held up in tracefs_d_revalidate() while the dentry goes\naway:\n\n  BUG: KASAN: slab-use-after-free in tracefs_d_revalidate+0x76/0x90\n  Read of size 1 at addr ff1100010152d8d0 by task walker/97\n  Call Trace:\n   <TASK>\n   tracefs_d_revalidate+0x76/0x90\n   lookup_fast+0x320/0x640\n   path_lookupat+0x160/0xb00\n   filename_lookup+0x1f1/0x5b0\n   vfs_statx+0xd7/0x3b0\n   vfs_fstatat+0x4d/0x90\n   __do_sys_newfstatat+0xa0/0x100\n   do_syscall_64+0x10e/0x5e0\n   entry_SYSCALL_64_after_hwframe+0x77/0x7f\n  [...]\n  Allocated by task 1:\n   __kmalloc_cache_noprof+0x249/0x560\n   eventfs_create_dir+0x7a/0x590\n   event_create_dir+0x2fb/0xcf0\n   trace_add_event_call+0xbf/0x150\n  [...]\n  Freed by task 11:\n   kfree+0x1db/0x5b0\n   srcu_invoke_callbacks+0x3a3/0x620\n   process_one_work+0x937/0x1810\n   worker_thread+0x4f1/0xd60\n\nBefore commit 8e556432477e (\"eventfs: Use SRCU for freeing\neventfs_inodes\") release_ei() used call_rcu(), which covered the walker,\nwhile eventfs_iterate() needs the SRCU grace period. Wait for both and\nchain call_rcu() from the SRCU callback.\n\n## Affected\n\n- `Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 4586ef24ce390e8becb9f3e5852d5d3978b01c33`\n- `Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 45fcfd5d9c10e0aa977ed5b9bd445707e01bb107`\n- `Linux >= 8e556432477e97ad6179c61b61a32bf5f1af2355 < 2cd88c498ecff8e22bf4c397b8eb226db70ac343`\n- `Linux 2ef3d120d19faba3dec35b10a025b00db0284373`\n- `Linux 384f383c5aa7bfd619d9f56a513a36e533428186`\n- `Linux >= 6.6.46 < 6.7`\n- `Linux >= 6.10.5 < 6.11`\n- `Linux 6.11`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}