Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
futex/pi: Reject cross-mm private futex owners
In the Linux kernel, the following vulnerability has been resolved: futex/pi: Reject cross-mm private futex owners A private futex key borrows the waiter's mm without taking an mm_users reference. Nevertheless, attach_to_pi_owner() currently accepts an owner from a different address space and copies the private key into the owner's PI state. When that owner exits, exit_pi_state_list() uses the saved key to find the hash bucket and acquires a reference to the waiter's private hash. If the last user of the waiter's mm exits concurrently, futex_hash_free() frees the hash while the owner still uses its bucket and reference. Prevent this by validating in attach_to_pi_owner() that, for private futexes, the owner mm and waiter mm are the same. Perform the check with the owner's pi_lock held and after validating owner::futex::state to serialize against a concurrent PI-state exit cleanup. [ tglx: Amended comment ]
References
Affected products
- <6.16
- =<7.1.*
- =<*
- <2b92e5562653b5293529f63b0300837d9dcedbd7
- <59b3732f95dda1fbd2234514d35f4fb6b5bb6d85
- =<6.18.*
- <43b148d796aa338858792d0167cebdc12b8cb4b9
- ==6.16
- <f7fb3e07752688842cbe0b85cf0d98c2fbf76b68
- =<7.2.*