In the Linux kernel, the following vulnerability has been resolved:
cachefiles: Fix double unlock in nomemdalloc error path
When start_creating() fails and returns -ENOMEM, it has already released the parent directory lock in _startdirop():
static struct dentry *__start_dirop(...)
{
...
inode_lock_nested(dir, I_MUTEX_PARENT);
dentry = lookup_one_qstr_excl(name, parent, lookup_flags);
if (IS_ERR(dentry))
inode_unlock(dir); <-- Lock released on error
return dentry;
}
However, the nomemdalloc error path in cachefilesgetdirectory() unconditionally calls inodeunlock(dinode(dir)) again, causing a double unlock that corrupts the rwsem state.
This is a leftover from commit 7ab96df840e60 which replaced manual locking with startcreating() but failed to update the nomemdalloc path (while correctly updating mkdirerror and lookup_error paths).
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72368.json",
"cna_assigner": "Linux"
}