Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: access chan->conn safely in get/setsockopt Since commit b66774b48dd9 ("Bluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref") l2cap_chan::conn has held reference and remains non-NULL also after the corresponding hci_conn is deleted. In this state accessing various fields eg. hci_conn::hdev is invalid, which leads to KASAN crash in l2cap_sock_setsockopt() access of conn->hcon->hdev. Check l2cap_chan::conn.hcon corresponds to an alive hci_conn before trying to use it in l2cap_sock.c. Hold l2cap_chan_lock() in getsockopt/setsockopt to ensure it stays alive, and to avoid data races in l2cap_chan fields.
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
8f90405a4a6f1f1880dc07996b47bf57c712bd8a to < c66cd500ba1a58b3798c468fcc774ed2c8c2ec7daffected32d783cafb46ff3ca58e6f9fd62c9c5f35eaf26b to < 737b80c97aef10404a9beed7c0ed45fcd5fc5931affected8922c7940bae9ce4b1736dddb6362370793835c2 to < 0d7b7b31ea092e17d757bd24e2e9028ba5e3a4caaffected91047a4396a8b1857a6f712a90cf33ec0012b189 to < 19e154d794eb4d33d99ca4a087b1cea9d5e65786affected0b0e2bf39cf99e458d991b9df253727e036a7d7d to < 3af72bf8f73c519ee562e6963d5ff8e678924f93affectedd3b739db5dc6f688a60d56da872fabaf65246032 to < 8460dc49c9756a1e9288218060b4d41e1b704905affectedb66774b48dd98f07254951f74ea6f513efe7ff8b to < f49321c85785178214fd67f2e9b4b73d6363783baffectedb66774b48dd98f07254951f74ea6f513efe7ff8b to < ca2c4c26498643f421d35ffe258fafbd3ed461c3affected50c38d9f42a529691e4e67ea9cedf4f0bfc8d277affected5.10.265 to < 5.10.273affected5.15.216 to < 5.15.224affected6.1.183 to < 6.1.191affected6.6.145 to < 6.6.160affected6.12.97 to < 6.12.114affected6.18.39 to < 6.18.57affected7.1.4 to < 7.2affected
Linux Linux
Default version status: affected
7.2affected0 to < 7.2unaffected5.10.273 to ≤ 5.10.*unaffected5.15.224 to ≤ 5.15.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c66cd500ba1a58b3798c468fcc774ed2c8c2ec7d ↗
- https://git.kernel.org/stable/c/737b80c97aef10404a9beed7c0ed45fcd5fc5931 ↗
- https://git.kernel.org/stable/c/0d7b7b31ea092e17d757bd24e2e9028ba5e3a4ca ↗
- https://git.kernel.org/stable/c/19e154d794eb4d33d99ca4a087b1cea9d5e65786 ↗
- https://git.kernel.org/stable/c/3af72bf8f73c519ee562e6963d5ff8e678924f93 ↗
- https://git.kernel.org/stable/c/8460dc49c9756a1e9288218060b4d41e1b704905 ↗
- https://git.kernel.org/stable/c/f49321c85785178214fd67f2e9b4b73d6363783b ↗
- https://git.kernel.org/stable/c/ca2c4c26498643f421d35ffe258fafbd3ed461c3 ↗