CVE-2026-74606 in Linuxinfo

Summary

by MITRE • 08/22/2026

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

eventfs: Fix use-after-free in eventfs_remove_rec()

eventfs_remove_rec() recursively removes the child at the current loop position. After the recursive call returns, list_for_each_entry() advances by reading list.next from the removed child.

If free_ei() drops the final reference, release_ei() reuses the list/rcu union to queue an SRCU callback. The child may be freed before that read. The eventfs_mutex serializes list updates, but it does not keep the removed child alive or prevent the SRCU callback from running.

Use list_for_each_entry_safe() to save the next sibling before recursively removing the current child.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 08/22/2026

The Linux kernel's tracefs implementation contains a critical use-after-free vulnerability within the eventfs_remove_rec function, which is responsible for managing the hierarchical structure of tracing events. This flaw arises from an incorrect iteration pattern during the recursive removal of directory entries. Specifically, the original code utilizes list_for_each_entry to traverse the child elements of a given inode. The logic involves recursively calling the removal function on the current entry and then advancing the iterator by reading the next pointer from that same entry's data structure. This approach assumes that the memory associated with the removed entry remains valid after the recursive call returns, which is not guaranteed in this context due to asynchronous cleanup mechanisms inherent to the kernel's reference counting and read-copy-update subsystems.

The root cause of this vulnerability lies in the interaction between reference counting and Resource Control Unit (RCU) callbacks. When an eventfs inode loses its final reference through free_ei(), it triggers release_ei(). This function may reuse a union within the inode structure to queue an SRCU callback for deferred cleanup. Because SRCU callbacks are executed asynchronously, potentially after the current execution context has moved on or even in different CPU contexts, there is a race condition where the memory containing the list pointers can be freed and reallocated before the iterator attempts to read the next sibling pointer from it. Although eventfs_mutex serializes structural updates to prevent concurrent modifications by other threads, it does not extend its protection to keep individual removed entries alive during this specific window of vulnerability. Consequently, accessing a potentially freed memory location constitutes a use-after-free error that can lead to kernel crashes or arbitrary code execution if the reused memory is manipulated maliciously.

From a security taxonomy perspective, this flaw aligns with CWE-416, which describes Use After Free vulnerabilities where software continues to use pointers after they have been freed. In terms of attack vectors and techniques, this vulnerability could potentially be leveraged within the ATT&CK framework under Tactic TA0005 (Defense Evasion) or TA0008 (Lateral Movement), depending on how an attacker exploits the memory corruption to bypass security controls or move laterally across a compromised system. The impact of such a flaw is severe, as it compromises kernel integrity and stability. A local unprivileged user could potentially trigger this condition by manipulating tracefs entries, leading to denial of service through system crashes or privilege escalation if the corrupted pointer allows for controlled memory writes that bypass standard security boundaries.

The resolution involves modifying the iteration logic in eventfs_remove_rec() to use list_for_each_entry_safe instead of the unsafe variant. This change ensures that a temporary variable is used to store the next sibling's pointer before the current entry is recursively removed and potentially freed. By saving this reference ahead of time, the iterator can safely advance even if the current node's memory has been deallocated or repurposed by an SRCU callback. This mitigation effectively eliminates the race condition without requiring changes to the broader locking strategy, as it addresses the specific timing issue where the pointer access outlived the object's lifetime. System administrators should ensure that kernel updates incorporating this fix are applied promptly to maintain system stability and security posture against potential exploitation of memory corruption flaws in tracing subsystems.

Responsible

Linux

Reservation

08/15/2026

Disclosure

08/22/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!