{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64108","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-07-19T07:54:57.034Z","datePublished":"2026-07-19T15:40:10.784Z","dateUpdated":"2026-08-05T12:39:17.918Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:39:17.918Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: Fix busy dentry used after unmounting\n\nSince commit 340cea84f691c (\"cifs: open files should not hold ref on\nsuperblock\"), cifs file only holds the dentry ref_cnt, the cifs file\nclose work(cfile->deferred) could be executed after unmounting, which\nwill trigger a warning in generic_shutdown_super:\n BUG: Dentry 00000000a14a6845{i=c,n=file}  still in use (1) [unmount of\n cifs cifs]\n\nThe detailed processs is:\n   process A           process B           kworker\n fd = open(PATH)\n  vfs_open\n   file->__f_path = *path // dentry->d_lockref.count = 1\n   cifs_open\n    cifs_new_fileinfo\n     cfile->dentry = dget(dentry) // dentry->d_lockref.count = 2\n close(fd)\n  __fput\n  cifs_close\n   queue_delayed_work(deferredclose_wq, cfile->deferred)\n  dput(dentry) // dentry->d_lockref.count = 1\n\t\t\t                 smb2_deferred_work_close\n\t\t\t\t\t  _cifsFileInfo_put\n\t\t\t\t\t   list_del(&cifs_file->flist)\n                    umount\n\t\t     cleanup_mnt\n\t\t      deactivate_super\n\t\t       cifs_kill_sb\n\t\t        cifs_close_all_deferred_files_sb\n\t\t\t cifs_close_all_deferred_files\n\t\t\t  // cannot find cfile, skip _cifsFileInfo_put\n\t\t\tkill_anon_super\n\t\t\t generic_shutdown_super\n\t\t\t  shrink_dcache_for_umount\n\t\t\t   umount_check\n\t\t\t    WARN ! // dentry->d_lockref.count = 1\n\t\t\t\t\t   cifsFileInfo_put_final\n\t\t\t\t\t    dput(cifs_file->dentry)\n\t\t                            // dentry->d_lockref.count = 0\n\nFix it by flushing 'deferredclose_wq' before calling kill_anon_super.\n\nFetch a reproducer in https://bugzilla.kernel.org/show_bug.cgi?id=221548."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The bug is reached through local VFS syscalls (open, close, umount) in the CIFS client mount teardown path, not through remote packet handling or in-kernel SMB server code.\nAC:L - An attacker controls both sides of the race by opening/closing files to queue deferred-close work (default 1-second closetimeo) and concurrently triggering umount, and can retry until the window is hit.\nPR:L - Exploitation requires only an unprivileged local user with access to files on an already-mounted CIFS/SMB3 share; mount/umount can be supplied by the attacker in a separate thread if they hold CAP_SYS_ADMIN, or by autofs/system umount on shared enterprise mounts.\nUI:N - No victim interaction is required; the attacker drives the open/close/umount syscall sequence directly without relying on another user to open files or click anything.\nS:U - Impact is confined to kernel memory corruption and privilege boundaries within the same host; this is not a VM escape, sandbox escape, or cross-security-authority boundary flaw.\nC:H - The deferred-close worker performs use-after-free on dentry, inode, and super_block structures after unmount teardown, which can be leveraged for arbitrary kernel memory read per standard UAF guidance.\nI:H - Post-unmount _cifsFileInfo_put() and cifsFileInfo_put_final() operate on freed kernel objects and can corrupt heap metadata or control flow, enabling arbitrary write or code execution primitives.\nA:H - The race triggers a WARN in generic_shutdown_super during umount and subsequent use-after-free in the deferred-close worker can cause kernel oops, panic, or hang."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/client/cifsfs.c"],"versions":[{"version":"708c276f516d27beaded7f372ac8111cee43926c","lessThan":"c7364cea52531534676b9f7dbc0a477c11f4c050","status":"affected","versionType":"git"},{"version":"0629a1a187e424373364d681b42b101894bdb548","lessThan":"bdc349a87f1fb02c18c4071858a06542bfea783d","status":"affected","versionType":"git"},{"version":"0e4b8faaaebe3137bec5723ef2b3cb0437fb38fd","lessThan":"f2deaa2f409a4598eaa10f2a93a676c0632af248","status":"affected","versionType":"git"},{"version":"f655467a9973f964b267871e5fef533ad5014494","lessThan":"5e7d9d0805e58fa3760894e73115b7a74024fd07","status":"affected","versionType":"git"},{"version":"340cea84f691c5206561bb2e0147158fe02070be","lessThan":"e1ffa6cf662383f95816eed1b623429d82675e75","status":"affected","versionType":"git"},{"version":"340cea84f691c5206561bb2e0147158fe02070be","lessThan":"c68337442f03953237a94577beb468ab2662a851","status":"affected","versionType":"git"},{"version":"30afc6ea72cc6cf7c8d579e79b64232801c38d08","status":"affected","versionType":"git"},{"version":"6.1.167","lessThan":"6.1.175","status":"affected","versionType":"semver"},{"version":"6.6.130","lessThan":"6.6.142","status":"affected","versionType":"semver"},{"version":"6.12.78","lessThan":"6.12.92","status":"affected","versionType":"semver"},{"version":"6.18.20","lessThan":"6.18.34","status":"affected","versionType":"semver"},{"version":"6.19.10","lessThan":"6.20","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/client/cifsfs.c"],"versions":[{"version":"7.0","status":"affected"},{"version":"0","lessThan":"7.0","status":"unaffected","versionType":"semver"},{"version":"6.1.175","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.142","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.92","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.34","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.0.11","lessThanOrEqual":"7.0.*","status":"unaffected","versionType":"semver"},{"version":"7.1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.167","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.130","versionEndExcluding":"6.6.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.78","versionEndExcluding":"6.12.92"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.20","versionEndExcluding":"6.18.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.0.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.19.10"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/c7364cea52531534676b9f7dbc0a477c11f4c050"},{"url":"https://git.kernel.org/stable/c/bdc349a87f1fb02c18c4071858a06542bfea783d"},{"url":"https://git.kernel.org/stable/c/f2deaa2f409a4598eaa10f2a93a676c0632af248"},{"url":"https://git.kernel.org/stable/c/5e7d9d0805e58fa3760894e73115b7a74024fd07"},{"url":"https://git.kernel.org/stable/c/e1ffa6cf662383f95816eed1b623429d82675e75"},{"url":"https://git.kernel.org/stable/c/c68337442f03953237a94577beb468ab2662a851"}],"title":"cifs: Fix busy dentry used after unmounting","x_generator":{"engine":"bippy-1.2.0"}}}}