In the Linux kernel, the following vulnerability has been resolved: USB: iowarrior: 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/c602254ba4c10f60a73cd99d147874f86a3f485c
https://git.kernel.org/stable/c/71590982700fdeb39a37a500c877228b0140978e
https://git.kernel.org/stable/c/3c0a7b29ebb391d5f50b115e86f842b709195b08