In the Linux kernel, the following vulnerability has been resolved: USB: ldusb: fix use-after-free on disconnect race mutex_unlock() may access the… (CVE-2026-64343)
Source GCVE Database
No CVSS score published yet
- Exploitation
Not in CISA KEV, no exploitation reported
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 2% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
What to do
AI-suggested
A fix has been implemented in the Linux kernel to address this vulnerability by using kref for driver data lifetime management. Users should apply the official kernel updates that include this fix. Patch status is not explicitly confirmed in the provided data; therefore, check the vendor advisory for current remediation guidance.
Description
In the Linux kernel, the following vulnerability has been resolved: USB: ldusb: fix use-after-free on disconnect race mutex_unlock() may access the mutex structure after releasing the lock and therefore cannot be used to manage lifetime of objects directly (unlike spinlocks and refcounts). [1][2] Use a kref to release the driver data to avoid use-after-free in mutex_unlock() when release() races with disconnect(). [1] a51749ab34d9 ("locking/mutex: Document that mutex_unlock() is non-atomic") [2] 2b9d9e0a9ba0 ("locking/mutex: Clarify that mutex_unlock(), and most other sleeping locks, can still use the lock object after it's unlocked")
Impact
This vulnerability could lead to use-after-free conditions in the Linux kernel USB driver, potentially causing kernel crashes or undefined behavior. No known exploits are reported in the wild. The impact is limited to kernel stability and security related to USB device handling.
Summary
The Linux kernel contained a use-after-free vulnerability in the USB ldusb driver caused by improper handling of mutex_unlock(). Unlike spinlocks and refcounts, mutex_unlock() can access the mutex object after unlocking, making it unsafe to manage object lifetimes directly with it. This led to a race condition where release() could collide with disconnect(), potentially causing use-after-free. The vulnerability was fixed by employing a kref to manage the driver data's lifetime, preventing unsafe access after the mutex is unlocked.
References
- nvd.nist.gov/vuln/detail/CVE-2026-64343 (opens in a new tab)
- git.kernel.org/stable/c/02ca08fff74cf9b0a3c4d2cacde1c6edeeb95bb4 (opens in a new tab)
- git.kernel.org/stable/c/19bdfc7b3c179331eafa423d87e1336f43bbfeb8 (opens in a new tab)
- git.kernel.org/stable/c/2107a4fc8ff1cf1d52f416c1e5cc8e97413a5915 (opens in a new tab)
- git.kernel.org/stable/c/a3e794136ab5e3ad1e7019175a4b837aec86db4b (opens in a new tab)
- git.kernel.org/stable/c/af59829e67e11ba2511a9f8e4b9111afc7d1f550 (opens in a new tab)
- git.kernel.org/stable/c/d8f69404e1d671326f86d378b9f5bfbd56490e9d (opens in a new tab)
- git.kernel.org/stable/c/e5a9bdce4bfd3e2226b5f3df5fb8385d6935ee69 (opens in a new tab)
- git.kernel.org/stable/c/fc55923a972e715f9a27187b47d4920709e23d85 (opens in a new tab)