Files
vuln-cve/data/2026/64xxx/CVE-2026-64108.json
T

262 lines
14 KiB
JSON

{
"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"
}
}
}
}