CVE-2026-64437·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix use-after-free of a deferred file_lock on SMB2_CLOSE then SMB2_CANCEL Commit f580d27e8928 ("ksmbd: fix use-after-free of a deferred file_lock on double SMB2_CANCEL") made smb2_cancel() skip a work whose state is KSMBD_WORK_CANCELLED, so its cancel_fn cannot be fired a second time. But KSMBD_WORK has three states (ACTIVE, CANCELLED, CLOSED), and the same freeing producer path is reached for CLOSED too: SMB2_CLOSE on the locking handle -> set_close_state_blocked_works() sets the deferred work's state to KSMBD_WORK_CLOSED and wakes the smb2_lock() worker. The worker takes the non-ACTIVE early-exit, locks_free_lock()s the file_lock and, because the state is not KSMBD_WORK_CANCELLED, takes the STATUS_RANGE_NOT_LOCKED branch with "goto out2" -- which, like the cancelled branch, skips release_async_work(). The work stays on conn->async_requests with a live cancel_fn = smb2_remove_blocked_lock pointing at the freed file_lock. A subsequent SMB2_CANCEL for the same AsyncId then passes the KSMBD_WORK_CANCELLED-only guard (its state is KSMBD_WORK_CLOSED), so smb2_cancel() fires cancel_fn again over the freed file_lock -- the same use-after-free fixed, via SMB2_CLOSE instead of a first SMB2_CANCEL: BUG: KASAN: slab-use-after-free in __locks_delete_block __locks_delete_block locks_delete_block ksmbd_vfs_posix_lock_unblock smb2_remove_blocked_lock smb2_cancel <- 2nd SMB2_CANCEL fires cancel_fn handle_ksmbd_work Allocated by ...: locks_alloc_lock <- smb2_lock Freed by ...: locks_free_lock <- smb2_lock (non-ACTIVE early-exit) ... cache file_lock_cache of size 192 Reproduced on mainline 7.1-rc7 (which already contains f580d27e8928) with KASAN by an authenticated SMB client; the double-SMB2_CANCEL control is silent on that kernel, so the splat is attributable to the CLOSE trigger. Only an ACTIVE deferred work may have its cancel_fn fired: both terminal states (CANCELLED and CLOSED) reach the smb2_lock() early-exit that frees the file_lock and skips release_async_work(). Guard on KSMBD_WORK_ACTIVE so any non-active work is skipped.
- Severity
- high
- Software
- Kernel
- Fixed in
- 7.1.4
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 0.44% — higher than 36% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2026-64437 scores 8.8 on CVSS, so a successful attack would be serious — but at 0.44%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 7.1.1
Until: 7.1.4
Fixed in: 7.1.4
How to fix this CVE
Update your Linux kernel to version 7.1.4 or later to resolve a use-after-free vulnerability in ksmbd's file locking mechanism. This flaw allows authenticated attackers to trigger memory corruption through a sequence of SMB2 operations (CLOSE followed by CANCEL). Apply the patch immediately on systems running kernels 7.1.1 through 7.1.3 that have ksmbd enabled.
sudo dnf update kernelDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r
- Verify ksmbd module is loaded: lsmod | grep ksmbd
- List active SMB/CIFS shares: smbclient -L localhost -U%
- Search system logs for ksmbd errors: grep -i 'ksmbd\|slab-use-after-free' /var/log/kern.log /var/log/messages
- Confirm patch applied: grep 'KSMBD_WORK_ACTIVE' /boot/config-$(uname -r) or check kernel git log for commits 10f293a07f9e or 12c36c99655f3
FAQ
What is CVE-2026-64437?
This is a use-after-free vulnerability in the Linux kernel's ksmbd SMB server implementation. An authenticated attacker can trigger the flaw by closing a file with an active lock, then sending a CANCEL request, causing the kernel to access freed memory and potentially execute arbitrary code with kernel privileges.
Is CVE-2026-64437 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog, and no public exploits are currently available. However, it requires only SMB authentication and basic protocol knowledge, so exploitation risk remains moderate for exposed systems.
What versions of Kernel are affected by CVE-2026-64437?
Linux kernel versions 7.1.1, 7.1.2, and 7.1.3 are vulnerable. Version 7.1.4 and later contain the fix. Systems running older 7.0.x kernels or newer 7.2+ releases are not affected.
How do I check if my server is vulnerable to CVE-2026-64437?
Run 'uname -r' to get your kernel version. If it shows 7.1.1, 7.1.2, or 7.1.3, you are vulnerable. Also verify ksmbd is enabled with 'lsmod | grep ksmbd' — if the module is not present, the attack surface is eliminated.
Does Defensia detect CVE-2026-64437?
Yes — Defensia's CVE advisory scanner compares installed kernel package versions against the NVD database. If your Linux kernel is running version 7.1.1–7.1.3, CVE-2026-64437 will appear in your Defensia dashboard with remediation steps and patch recommendations.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/10f293a07f9e10e988b0ae44e2e99c631f5a68e0
- https://git.kernel.org/stable/c/12c36c99655f325befe50c26842f7deca414c381
- https://git.kernel.org/stable/c/94083db751930b1540ddff2b54d4677549c57f81
- https://git.kernel.org/stable/c/a796ba4e61d5e14e07b79a359faac69f8f9b22a3
- https://git.kernel.org/stable/c/b8e274e69ab09222c7a552c7c0c1eef9ce627fc1
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-64437. Free for 1 server.
Get started free