{"id":"CVE-2026-99173","aliases":[],"title":"eventfs: Free the eventfs_inode after an rcu grace period too","titleSource":"Linux","descriptionSource":"Linux","products":[{"vendor":"Linux","name":"Linux","platforms":[],"versions":[{"version":"8e556432477e97ad6179c61b61a32bf5f1af2355","status":"affected","lessThan":"4586ef24ce390e8becb9f3e5852d5d3978b01c33","versionType":"git"},{"version":"8e556432477e97ad6179c61b61a32bf5f1af2355","status":"affected","lessThan":"45fcfd5d9c10e0aa977ed5b9bd445707e01bb107","versionType":"git"},{"version":"8e556432477e97ad6179c61b61a32bf5f1af2355","status":"affected","lessThan":"2cd88c498ecff8e22bf4c397b8eb226db70ac343","versionType":"git"},{"version":"2ef3d120d19faba3dec35b10a025b00db0284373","status":"affected","versionType":"git"},{"version":"384f383c5aa7bfd619d9f56a513a36e533428186","status":"affected","versionType":"git"},{"version":"6.6.46","status":"affected","lessThan":"6.7","versionType":"semver"},{"version":"6.10.5","status":"affected","lessThan":"6.11","versionType":"semver"}],"defaultStatus":"unaffected","source":"Linux","url":"https://www.cve.org/CVERecord?id=CVE-2026-99173"},{"vendor":"Linux","name":"Linux","platforms":[],"versions":[{"version":"6.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.11","versionType":"semver"},{"version":"6.18.59","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.13","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"defaultStatus":"affected","source":"Linux","url":"https://www.cve.org/CVERecord?id=CVE-2026-99173"}],"remediation":[],"description":"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_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.","severity":"unknown","score":null,"published":"2026-10-28T10:35:28.017Z","modified":"2026-10-28T10:35:28.017Z","withdrawn":false,"knownExploited":false,"affected":[],"references":["https://git.kernel.org/stable/c/4586ef24ce390e8becb9f3e5852d5d3978b01c33","https://git.kernel.org/stable/c/45fcfd5d9c10e0aa977ed5b9bd445707e01bb107","https://git.kernel.org/stable/c/2cd88c498ecff8e22bf4c397b8eb226db70ac343"],"sources":[{"name":"CVE","id":"CVE-2026-99173","modified":"2026-10-28T10:35:28.017Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-99173"}],"assessments":[],"sourceAffected":[],"kev":{"status":"not-listed","checkedAt":"2026-10-28T16:45:33.316Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[]}