In the Linux kernel, the following vulnerability has been resolved: USB: idmouse: 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")
https://git.kernel.org/stable/c/ff002c153f9722caece3983cc23dc4d9d4652cb4
https://git.kernel.org/stable/c/f62622e947f82a3854a8502d09492ffbdeb252b4
https://git.kernel.org/stable/c/e88cff5fbaa629f3cab45c8b46f395d62c2eb515
https://git.kernel.org/stable/c/d0f61acb51a8c8f3fd41c303ddb7770cd83e7ed4
https://git.kernel.org/stable/c/8d53b14ad4ccbff6d306b3a39c812303f4a87d41
https://git.kernel.org/stable/c/60fc5ef4ecea3e3d1fe556cecf53ddd13096ef09
https://git.kernel.org/stable/c/54c2b7356b4aeea467f9fb13b85e9e036bc428cb
https://git.kernel.org/stable/c/31e75fed8f90cfea9f8285e7ed135b0e452bf872