{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72381","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-09T03:40:39.923Z","datePublished":"2026-08-15T05:56:13.477Z","dateUpdated":"2026-08-17T05:43:32.020Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-17T05:43:32.020Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix use-after-free of fp->owner.name in durable handle owner check\n\nTwo concurrent SMB2 durable reconnects (DH2C/DHnC) on the same\npersistent_id race the fp->owner.name compare-read in\nksmbd_vfs_compare_durable_owner() against the kfree() in\nksmbd_reopen_durable_fd()'s reopen-success path. fp->owner.name is a\nstandalone kstrdup() buffer whose lifetime is independent of the fp\nrefcount, and the two sites share no lock: the compare reads the buffer\nwhile the reopen frees it, so the strcmp() can dereference freed memory.\n\nCommit 7ce4fc40018d (\"ksmbd: fix durable reconnect double-bind race in\nksmbd_reopen_durable_fd\") made the fp->conn claim atomic under\nglobal_ft.lock (closing the owner.name double-free and the ksmbd_file\nwrite-UAF), but the compare-read versus reopen-free pair was left\nunserialized.\n\n  BUG: KASAN: slab-use-after-free in strcmp+0x2c/0x80\n  Read of size 1 by task kworker\n    strcmp\n    ksmbd_vfs_compare_durable_owner\n    smb2_check_durable_oplock\n    smb2_open\n  Freed by task kworker:\n    kfree\n    ksmbd_reopen_durable_fd\n    smb2_open\n  Allocated by task kworker:\n    kstrdup\n    session_fd_check\n    smb2_session_logoff\n  The buggy address belongs to the cache kmalloc-8\n\nSerialize both sides of the race with fp->f_lock.  The global durable\nfile-table lock still protects the durable reconnect claim, but\nfp->owner.name is per-open state and does not need to block unrelated\ndurable table lookups or reconnects.  The teardown is left at its\nexisting location after the reopen-success point so that an __open_id()\nrollback still retains owner.name for a later legitimate reconnect to\nverify."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The flaw is reached via ksmbd's in-kernel SMB2 server on TCP port 445; remote SMB2_CREATE durable-handle reconnect packets (DH2C/DHnC) traverse ksmbd_conn_handler_loop() -> smb2_check_user_session() -> smb2_open() -> parse_durable_handle_context() -> smb2_check_durable_oplock() / ksmbd_reopen_durable_fd().\nAC:L - The attacker controls both sides of the race by opening a durable handle, issuing SMB2_LOGOFF to preserve owner.name via session_fd_check(), then sending concurrent SMB2_CREATE durable reconnect requests for the same persistent_id from multiple connections; no timing or layout outside attacker control is required.\nPR:N - Exploitation requires only network reachability to ksmbd and valid SMB session credentials (guest or any share user) plus tree connect; no elevated host privileges, capabilities, or local access are needed beyond share-level SMB access obtainable through the protocol itself.\nUI:N - No victim user interaction is required beyond a server running ksmbd with durable handles enabled; the attacker programmatically drives the open, logoff, and concurrent reconnect SMB2 sequence over the network.\nS:U - Impact is confined to kernel heap memory corruption and privilege escalation within the same host security authority; this is not a VM escape, container boundary bypass, or IOMMU/DMA isolation break.\nC:H - strcmp() in ksmbd_vfs_compare_durable_owner() dereferences a freed kmalloc-8 fp->owner.name buffer while a concurrent ksmbd_reopen_durable_fd() kfree() runs; this slab use-after-free enables arbitrary kernel memory disclosure via heap reuse.\nI:H - Use-after-free of the standalone owner.name kstrdup buffer provides kernel heap corruption primitives; with heap grooming the freed slab can be reallocated for arbitrary kernel memory writes and control-flow hijacking.\nA:H - KASAN reports slab-use-after-free in strcmp on the owner.name buffer during concurrent smb2_open durable reconnects; the UAF can trigger kernel oops or panic on ksmbd worker threads and is repeatable by resending concurrent reconnect requests."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/vfs_cache.c"],"versions":[{"version":"712cdf917e77a6444ce3836874829d770db20ee6","lessThan":"fb978d72052704c6b06c6b0f129fcd60b77169f5","status":"affected","versionType":"git"},{"version":"c7f0f0d01c88bdcb8b1694d7d321670013f7ed7d","lessThan":"93d4d46bf9d442a12ea87278049ec416962c627f","status":"affected","versionType":"git"},{"version":"00ce8d6789dae72d042a4522264964c72891ca37","lessThan":"5a5ac2852cd326529d02f778bc1aa6184701f4d7","status":"affected","versionType":"git"},{"version":"49110a8ce654bbe56bef7c5e44cce31f4b102b8a","lessThan":"ed98719be41389d416953b8ef9f07a07dfea6b2b","status":"affected","versionType":"git"},{"version":"49110a8ce654bbe56bef7c5e44cce31f4b102b8a","lessThan":"38637163501fd9e2f684b8cd275d0db5d79f37c6","status":"affected","versionType":"git"},{"version":"c908c853f304a4969b5aa10eba0b50350cc65b80","status":"affected","versionType":"git"},{"version":"6.6.142","lessThan":"6.6.145","status":"affected","versionType":"semver"},{"version":"6.12.92","lessThan":"6.12.97","status":"affected","versionType":"semver"},{"version":"6.18.25","lessThan":"6.18.40","status":"affected","versionType":"semver"},{"version":"7.0.2","lessThan":"7.1","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/server/vfs_cache.c"],"versions":[{"version":"7.1","status":"affected"},{"version":"0","lessThan":"7.1","status":"unaffected","versionType":"semver"},{"version":"6.6.145","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.97","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.40","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.1.5","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","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.6.142","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.92","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.25","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/fb978d72052704c6b06c6b0f129fcd60b77169f5"},{"url":"https://git.kernel.org/stable/c/93d4d46bf9d442a12ea87278049ec416962c627f"},{"url":"https://git.kernel.org/stable/c/5a5ac2852cd326529d02f778bc1aa6184701f4d7"},{"url":"https://git.kernel.org/stable/c/ed98719be41389d416953b8ef9f07a07dfea6b2b"},{"url":"https://git.kernel.org/stable/c/38637163501fd9e2f684b8cd275d0db5d79f37c6"}],"title":"ksmbd: fix use-after-free of fp->owner.name in durable handle owner check","x_generator":{"engine":"bippy-1.2.0"}}}}