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

configfs_lookup(): don't leave ->s_dentry dangling on failure

Normally ->s_dentry is cleared when dentry it's pointing to becomes
negative (on eviction, realistically). However, that only happens
if dentry gets to be positive in the first place; in case of inode
allocation failure dentry never becomes positive, so ->d_iput()
is not called at all.

We do part of what normally would've been done by configfs_d_iput()
(dropping the reference to configfs_dirent) manually, but we do
not clear ->s_dentry there. Sloppy as it is, it does not matter in
case of configfs_create_{dir,link}() - there configfs_dirent does
not survive dropping the sole reference to it.

However, for configfs_lookup() it *does* survive, with a dangling
pointer to soon to be freed dentry sitting it its ->s_dentry.

Subsequent getdents(2) in that directory will end up dereferencing
that pointer in order to pick the inode number. Use after free...

This is the minimal fix; the right approach is to set the linkage
between dentry and configfs_dirent only after we know that we have
an inode, but that takes more surgery and the bug had been there
since 2006, so...
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, an error in configfs_lookup() can leave a dangling pointer to a dentry when inode allocation fails. The pointer is later dereferenced during getdents() calls, resulting in a use‑after‑free condition that may corrupt kernel memory. The vulnerability stems from the failure to clear the s_dentry field after a failed lookup, allowing an attacker with the ability to trigger the scenario to cause arbitrary memory corruption, potentially leading to privilege escalation or denial of service.

Affected Systems

The flaw is present in all releases of the Linux kernel that have not incorporated the fixes referenced in the upstream commit. The affected product is the Linux kernel itself; any distribution packaging a kernel before the patch that modifies the configfs_lookup() logic is at risk. No specific version range is listed, so all pre‑hotfix kernels are considered vulnerable.

Risk and Exploitability

The CVSS score is 7.8, indicating a high severity. The EPSS score is < 1%, suggesting a low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Exploitation would require local access capable of performing getdents() on a configfs directory where an inode allocation fails, which is unlikely in normal operation but could be triggered by a crafted device or a misconfigured system. Because the fault can corrupt kernel memory, the risk is significant for impacted systems.

Generated by OpenCVE AI on August 22, 2026 at 02:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the commit that clears the s_dentry pointer, or apply the patch from the kernel Git repository.
  • Reboot into the updated kernel to activate the fix.
  • If an immediate kernel upgrade is not possible, avoid creating configfs entries that trigger inode allocation failures or restrict local users from performing getdents() calls on configfs directories until the patch is applied.

Generated by OpenCVE AI on August 22, 2026 at 02:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 01:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 21 Aug 2026 00:15:00 +0000

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

None

threat_severity

Important


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 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: configfs_lookup(): don't leave ->s_dentry dangling on failure Normally ->s_dentry is cleared when dentry it's pointing to becomes negative (on eviction, realistically). However, that only happens if dentry gets to be positive in the first place; in case of inode allocation failure dentry never becomes positive, so ->d_iput() is not called at all. We do part of what normally would've been done by configfs_d_iput() (dropping the reference to configfs_dirent) manually, but we do not clear ->s_dentry there. Sloppy as it is, it does not matter in case of configfs_create_{dir,link}() - there configfs_dirent does not survive dropping the sole reference to it. However, for configfs_lookup() it *does* survive, with a dangling pointer to soon to be freed dentry sitting it its ->s_dentry. Subsequent getdents(2) in that directory will end up dereferencing that pointer in order to pick the inode number. Use after free... This is the minimal fix; the right approach is to set the linkage between dentry and configfs_dirent only after we know that we have an inode, but that takes more surgery and the bug had been there since 2006, so...
Title configfs_lookup(): don't leave ->s_dentry dangling on failure
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:46:19.411Z

Reserved: 2026-08-15T05:44:03.887Z

Link: CVE-2026-74359

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-08-17T06:19:30.627

Link: CVE-2026-74359

cve-icon Redhat

Severity : Important

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

Links: CVE-2026-74359 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T03:00:12Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference