CVE-2025-40105: vfs: Don't leak disconnected dentries on umount
In the Linux kernel, the following vulnerability has been resolved:
vfs: Don't leak disconnected dentries on umount
When user calls open_by_handle_at() on some inode that is not cached, we
will create disconnected dentry for it. If such dentry is a directory,
exportfs_decode_fh_raw() will then try to connect this dentry to the
dentry tree through reconnect_path(). It may happen for various reasons
(such as corrupted fs or race with rename) that the call to
lookup_one_unlocked() in reconnect_one() will fail to find the dentry we
are trying to reconnect and instead create a new dentry under the
parent. Now this dentry will not be marked as disconnected although the
parent still may well be disconnected (at least in case this
inconsistency happened because the fs is corrupted and .. doesn't point
to the real parent directory). This creates inconsistency in
disconnected flags but AFAICS it was mostly harmless. At least until
commit f1ee616214cb ("VFS: don't keep disconnected dentries on d_anon")
which removed adding of most disconnected dentries to sb->s_anon list.
Thus after this commit cleanup of disconnected dentries implicitely
relies on the fact that dput() will immediately reclaim such dentries.
However when some leaf dentry isn't marked as disconnected, as in the
scenario described above, the reclaim doesn't happen and the dentries
are "leaked". Memory reclaim can eventually reclaim them but otherwise
they stay in memory and if umount comes first, we hit infamous "Busy
inodes after unmount" bug. Make sure all dentries created under a
disconnected parent are marked as disconnected as well.
Security readout for executives and security teams
Plain-English summary
A Linux VFS flaw can leave filesystem directory entries in memory when path reconnection fails, potentially causing “Busy inodes after unmount.” The supplied CVSS vector indicates local, low-privilege access, so direct internet exposure is not the primary concern. Systems performing filesystem mount or unmount operations on affected kernels warrant prompt review.
Executive priority
Treat this as high-priority maintenance, especially on multi-user Linux systems or hosts with frequent filesystem lifecycle operations. The local attack vector reduces emergency internet-facing urgency, but possible unmount failures and the assigned 7.8 score justify timely vendor-supported kernel updates and confirmation that repaired kernels are active.
Technical view
open_by_handle_at() can create a disconnected dentry. If reconnection creates a child beneath a disconnected parent without marking the child disconnected, dput() may not reclaim it immediately. The resulting dentry leak can persist until memory reclaim and cause busy inodes during unmount. The referenced kernel fixes propagate the disconnected state correctly.
Likely exposure
The bundle identifies affected Linux kernel releases across branches from 4.16 through 6.18, with branch-specific fixes. Exact distribution package status cannot be inferred from upstream version numbers alone. Exposure requires an affected running kernel, local access, and the documented filesystem inconsistency or rename-race conditions.
Exploitation context
The supplied record is not marked as CISA KEV, and no provided source reports active exploitation or a public weaponized exploit. The description identifies corrupted filesystem state and a rename race as possible triggering conditions. Practical exploitability and reliable security impact beyond memory retention and unmount failure are not established here.
Researcher notes
The bundle assigns CVSS 3.1 score 7.8 with high confidentiality, integrity, and availability impacts. However, its technical narrative directly demonstrates dentry retention and possible unmount failure; it does not explain confidentiality or integrity consequences. Researchers should avoid inferring those impacts without additional evidence and should evaluate each stable branch independently.
Mitigation direction
Install a vendor kernel containing the applicable referenced stable fix or an equivalent distributor backport.
Reboot into the fixed kernel so the remediation becomes active.
Review relevant Linux distributor and Siemens guidance for product-specific packages and maintenance requirements.
Validation and detection
Record each system’s running kernel release and compare it with authoritative vendor vulnerability status.
Confirm the active kernel contains the applicable stable fix or a documented vendor backport.
After reboot, verify the fixed kernel is running rather than merely installed.
Review operational logs for recurring “Busy inodes after unmount” events.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-40105 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
10Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.