CVE-2025-40105 json
vfs: Don't leak disconnected dentries on umount
published 2025-10-30 12 mo ago modified 2026-10-19 20 d ago also EUVD-2025-36973
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 5%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- Linux Linux 5.4.301, 5.10.246, 5.15.196, 6.1.158, 6.6.114, 6.12.55, 6.17.5, 6.18
- linux Debian 12 6.1.158-1
- linux Debian 13 6.12.57-1
- linux Debian 14 6.17.6-1
debian advisories DEBIAN-CVE-2025-40105
- linux Ubuntu 22.04 LTS 5.15.0-170.180
- linux Ubuntu 24.04 LTS 6.8.0-106.106
- linux Ubuntu 25.10 6.17.0-14.14
- linux-aws Ubuntu 22.04 LTS 5.15.0-1100.107
- linux-aws Ubuntu 24.04 LTS 6.8.0-1050.53
- linux-aws Ubuntu 25.10 6.17.0-1007.7
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1100.109
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1052.55
ubuntu advisories UBUNTU-CVE-2025-40105
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-source Linux Micro 6.1, Linux Micro 6.0 6.4.0-38.1
- kernel-default Linux Micro 6.1, Linux Micro 6.0 6.4.0-38.1
- kernel-kvmsmall Linux Micro 6.1, Linux Micro 6.0 6.4.0-38.1
- kernel-default-base Linux Micro 6.1, Linux Micro 6.0 6.4.0-38.1.21.15
- kernel-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1
- kernel-source-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1
- kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.61.1
- kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.61.1
suse advisories SUSE-SU-2026:20473-1SUSE-SU-2026:20496-1SUSE-SU-2026:20039-1SUSE-SU-2026:20059-1SUSE-SU-2025:4521-1SUSE-SU-2025:4517-1
- kernel-source-longterm openSUSE Tumbleweed 6.18.16-1.1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.8.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.8.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.8.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.8.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.8.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.8.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.8.1
opensuse advisories openSUSE-SU-2026:10301-1openSUSE-SU-2025:20172-1openSUSE-SU-2025:15702-1
- git.kernel.org/stable/c/b5abafd0aa8d7bcb935c8f91e4cfc2f2820759e4 commit
- git.kernel.org/stable/c/20863bb7fbb016379f8227122edfabc5c799bc79 commit
- git.kernel.org/stable/c/8004d4b8cbf1bd68a23c160d57287e177c82cc69 commit
- git.kernel.org/stable/c/7e0c8aaf4e28918abded547a5147c7d52c4af7d2 commit
- git.kernel.org/stable/c/cebfbf40056a4d858b2a3ca59a69936d599bd209 commit
- git.kernel.org/stable/c/620f3b0ede9c5cb4976cd0457d0b04ad551e5d6b commit
- git.kernel.org/stable/c/eadc49999fa994d6fbd70c332bd5d5051cc42261 commit
- git.kernel.org/stable/c/56094ad3eaa21e6621396cc33811d8f72847a834 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-40105 updated cvss 5.5
kernel: vfs: Don't leak disconnected dentries on umount
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelaffected: no fix available “Fix deferred”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-26-295-11 updated cvss 7.8
Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.7 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.7 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.7affected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
cisa ICSA-26-209-04 updated cvss 5.5
Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.6 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.6 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.6affected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 24 d ago
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 5% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP
Classification
- Technology feeds
References
- git.kernel.org /stable/c/b5abafd0aa8d7bcb935c8f91e4cfc2f2820759e4
- git.kernel.org /stable/c/20863bb7fbb016379f8227122edfabc5c799bc79
- git.kernel.org /stable/c/8004d4b8cbf1bd68a23c160d57287e177c82cc69
- git.kernel.org /stable/c/7e0c8aaf4e28918abded547a5147c7d52c4af7d2
- git.kernel.org /stable/c/cebfbf40056a4d858b2a3ca59a69936d599bd209
- git.kernel.org /stable/c/620f3b0ede9c5cb4976cd0457d0b04ad551e5d6b
- git.kernel.org /stable/c/eadc49999fa994d6fbd70c332bd5d5051cc42261
- git.kernel.org /stable/c/56094ad3eaa21e6621396cc33811d8f72847a834
- cert-portal.siemens.com /productcert/html/ssa-019113.html
- cert-portal.siemens.com /productcert/html/ssa-457936.html
Sources
- CVE List CVE-2025-40105
- NVD CVE-2025-40105
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.