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

cachefiles: Fix double unlock in nomem_d_alloc error path

When start_creating() fails and returns -ENOMEM, it has already
released the parent directory lock in __start_dirop():

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 nomem_d_alloc error path in cachefiles_get_directory()
unconditionally calls inode_unlock(d_inode(dir)) again, causing a
double unlock that corrupts the rwsem state.

This is a leftover from commit 7ab96df840e60 which replaced manual
locking with start_creating() but failed to update the nomem_d_alloc
path (while correctly updating mkdir_error and lookup_error paths).
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The cachefiles subsystem in the Linux kernel contains a double unlock bug where an error path unconditionally releases a lock that was already released, corrupting the rwsem state. This corruption can cause kernel crashes, unexpected behavior, or denial of service on affected systems.

Affected Systems

Any Linux kernel that includes the cachefiles module prior to incorporating the double‑unlock fix is vulnerable. Versions that have not integrated commit 26757dac in the kernel source tree remain exposed, so all unpatched releases that compile cachefiles are at risk.

Risk and Exploitability

The CVSS score of 7.8 reflects a high severity of kernel state corruption. The EPSS score of less than 1% indicates a low probability of exploitation in the wild. Based on the description, it is inferred that exploitation would likely require local access to operations that exercise the cachefiles path, such as creating directories in a cachefiles filesystem, but the defect does not provide a privilege‑escalation vector. The vulnerability is not listed in CISA’s KEV catalog, underscoring that no known active attacks target this defect.

Generated by OpenCVE AI on August 22, 2026 at 08:00 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes the commit 26757dac or later, which resolves the double‑unlock bug.
  • If an upgrade is not immediately possible, unload the cachefiles module or unmount any cachefiles filesystems to prevent the error path from being exercised.
  • Continuously monitor system logs for kernel Oops or related errors and apply the patch at the earliest convenience.

Generated by OpenCVE AI on August 22, 2026 at 08:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 06:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-672

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-832
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-672

Mon, 17 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-404

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 11:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-404

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: cachefiles: Fix double unlock in nomem_d_alloc error path When start_creating() fails and returns -ENOMEM, it has already released the parent directory lock in __start_dirop(): 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 nomem_d_alloc error path in cachefiles_get_directory() unconditionally calls inode_unlock(d_inode(dir)) again, causing a double unlock that corrupts the rwsem state. This is a leftover from commit 7ab96df840e60 which replaced manual locking with start_creating() but failed to update the nomem_d_alloc path (while correctly updating mkdir_error and lookup_error paths).
Title cachefiles: Fix double unlock in nomem_d_alloc error path
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:43:22.072Z

Reserved: 2026-08-09T03:40:39.922Z

Link: CVE-2026-72368

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:10.227

Modified: 2026-08-17T06:18:41.010

Link: CVE-2026-72368

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72368 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T08:00:13Z

Weaknesses
  • CWE-832

    Unlock of a Resource that is not Locked