CVE Catalog

CVE-2026-97950

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the configfs system has an issue with pinning the symlink target's dirent. create_link() reads the dirent from ci_dentry, which may be freed during a race with rmdir, triggering a WARN_ON. The fix pins the dirent in get_target() under d_lock.

Risk Assessment

The race can lead to use-after-free, potentially causing system crash or privilege escalation. The issue occurs with concurrent symlink creation and directory removal.

Recommendation

Apply a Linux kernel update containing the fix for configfs. Restrict access to configfs operations to trusted users.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: configfs: pin the symlink target's dirent instead of chasing ->ci_dentry create_link() reads the target's configfs_dirent from item->ci_dentry->d_fsdata, relying on the item reference taken by get_target(). That reference pins the item, not its dentry: the dentry is pinned by DCACHE_PERSISTENT, which configfs_remove_dir() releases via simple_rmdir() while the item is still alive. A symlink racing with rmdir of its target can therefore find ->ci_dentry freed and its dirent released, triggering WARN_ON(!atomic_read(&sd->s_count)) in configfs_get(). Take the dirent in get_target() as well, under ->d_lock and atomically with the item reference, and pass it down to create_link(). A hashed dentry has not been killed yet, so its ->d_fsdata reference keeps the dirent alive there.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS