Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp l2cap_le_connect_rsp() obtains a channel via __l2cap_get_chan_by_ident() but neither holds a reference nor uses l2cap_chan_hold_unless_zero() before locking and operating on it. A concurrent l2cap_chan_del() triggered by a remote disconnect can free the channel between the lookup and l2cap_chan_lock(), causing a use-after-free. The BR/EDR counterpart l2cap_connect_rsp() and the sibling handler l2cap_le_command_rej() already use l2cap_chan_hold_unless_zero() to safely hold a reference, but l2cap_le_connect_rsp() was left unprotected. Fix by adding l2cap_chan_hold_unless_zero() after the ident lookup and l2cap_chan_put() on the exit path, consistent with other L2CAP response handlers.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 15d6c2367217a6a20b1abae9f38ded716bf620f1affectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 1818180fe12d6cec7a437bc59cde8efdf6b10250affectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 8325eafb38c3dee5af329266393763693d17381baffectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < fd4c1e301bdec60a40728ea37de531cbccda501aaffectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 522b730c62c53a1981604fd73524697fd347830daffectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 58e3c5289ad230a7e24ae4b0c7b43f5ee6e32136affectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < 09f447accc2570751e7d17f0dc0788b40d3edadeaffectedf1496dee9cbde2a62821f4441dadb0d3360f60c3 to < c4740e7f23ff9a8210198d8b4703259e21b9f69daffected
Linux Linux
Default version status: affected
3.14affected0 to < 3.14unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.151 to ≤ 6.6.*unaffected6.12.103 to ≤ 6.12.*unaffected6.18.44 to ≤ 6.18.*unaffected7.1.8 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/15d6c2367217a6a20b1abae9f38ded716bf620f1 ↗
- https://git.kernel.org/stable/c/1818180fe12d6cec7a437bc59cde8efdf6b10250 ↗
- https://git.kernel.org/stable/c/8325eafb38c3dee5af329266393763693d17381b ↗
- https://git.kernel.org/stable/c/fd4c1e301bdec60a40728ea37de531cbccda501a ↗
- https://git.kernel.org/stable/c/522b730c62c53a1981604fd73524697fd347830d ↗
- https://git.kernel.org/stable/c/58e3c5289ad230a7e24ae4b0c7b43f5ee6e32136 ↗
- https://git.kernel.org/stable/c/09f447accc2570751e7d17f0dc0788b40d3edade ↗
- https://git.kernel.org/stable/c/c4740e7f23ff9a8210198d8b4703259e21b9f69d ↗