Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: SCO: hold sk properly in sco_conn_ready sk deref in sco_conn_ready must be done either under conn->lock, or holding a refcount, to avoid concurrent close. conn->sk and parent sk is currently accessed without either, and without checking parent->sk_state: [Task 1] [Task 2] sco_sock_release sco_conn_ready sk = conn->sk lock_sock(sk) conn->sk = NULL lock_sock(sk) release_sock(sk) sco_sock_kill(sk) UAF on sk deref and similarly for access to sco_get_sock_listen() return value. Fix possible UAF by holding sk refcount in sco_conn_ready() and making sco_get_sock_listen() increase refcount. Also recheck after lock_sock that the socket is still valid. Adjust conn->sk locking so it's protected also by lock_sock() of the associated socket if any.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 27c24fda62b601d6f9ca5e992502578c4310876f before 50aae396dc30377bec8e3b181b8346f8fd38f7d8; affected 27c24fda62b601d6f9ca5e992502578c4310876f before 6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1; affected 27c24fda62b601d6f9ca5e992502578c4310876f before d141d9b769bcd1b747898528c5023270cda040f2; affected 27c24fda62b601d6f9ca5e992502578c4310876f before 73cb063f5ec6ca51eb1e246c6d332563002ac277; affected 27c24fda62b601d6f9ca5e992502578c4310876f before 7199c78c3a3e399a4dc439d845826793880ccedc; affected 27c24fda62b601d6f9ca5e992502578c4310876f before 4e37f6452d586b95c346a9abdd2fb80b67794f39 |
| Linux / Linux | affected 5.15; unaffected 0 before 5.15; unaffected 5.15.212 through 5.15.*; unaffected 6.1.178 through 6.1.*; unaffected 6.6.145 through 6.6.*; unaffected 6.12.97 through 6.12.*; unaffected 6.18.40 through 6.18.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/50aae396dc30377bec8e3b181b8346f8fd38f7d8
- https://git.kernel.org/stable/c/6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1
- https://git.kernel.org/stable/c/d141d9b769bcd1b747898528c5023270cda040f2
- https://git.kernel.org/stable/c/73cb063f5ec6ca51eb1e246c6d332563002ac277
- https://git.kernel.org/stable/c/7199c78c3a3e399a4dc439d845826793880ccedc
- https://git.kernel.org/stable/c/4e37f6452d586b95c346a9abdd2fb80b67794f39