Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: fix UAF in bt_accept_dequeue() bt_accept_get() takes a temporary reference before dropping the accept queue lock. bt_accept_dequeue() currently drops that reference before bt_accept_unlink(), leaving only the queue reference. bt_accept_unlink() drops the queue reference. The subsequent sock_hold() therefore accesses freed memory if it was the final reference, as observed by KASAN during listening L2CAP socket cleanup. Retain the temporary queue-walk reference through unlink and hand it to the caller on success. Drop it explicitly on the closed and not-yet-connected paths.
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
751de6ec671fe75ad9cf65a0638d2a06b6a5984d to < c0577c55219be42b6ea2ea8db11e85bfab6f4e8daffected407217734835d21d4e0105ebf347860dc1806f88 to < 96ad400d5132eb333f28f6f1e2d58f0728ca9547affected7eebd4c2c86f573af87ff165d08a83432eb0b919 to < 0a98ff4e7b867f72fbb4e1237d81e9fa02ded0a0affected5d86d2f1b4d9a508c441d3e45277ae1a73cfed57 to < c66a95e60b65d876a927123b0ed36bd6177d9ca6affected87c543e2f78d0871f271df92dab98901bbd5b6f5 to < 6303ed4bbe0095f4cc195225479bf506e010d1dbaffectedadded1213395071470a900cc845a042fb51882a6 to < 26168db1ce5a9766cde021b18e590a101c056614affectedab1513597c6cf17cd1ad2a21e3b045421b48e022 to < 50c662bdcd51b03033a0abed6716bfd377ba1049affectedab1513597c6cf17cd1ad2a21e3b045421b48e022 to < 4bd0b274054f2679f28b70222b607bb0afc3ab9aaffecteda5ca86a6097a8b030ca3226cd300b17ed330f966affected5.10.259 to < 5.10.261affected5.15.210 to < 5.15.212affected6.1.175 to < 6.1.178affected6.6.142 to < 6.6.145affected6.12.92 to < 6.12.96affected6.18.34 to < 6.18.39affected7.0.11 to < 7.1affected
Linux Linux
Default version status: affected
7.1affected0 to < 7.1unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c0577c55219be42b6ea2ea8db11e85bfab6f4e8d ↗
- https://git.kernel.org/stable/c/96ad400d5132eb333f28f6f1e2d58f0728ca9547 ↗
- https://git.kernel.org/stable/c/0a98ff4e7b867f72fbb4e1237d81e9fa02ded0a0 ↗
- https://git.kernel.org/stable/c/c66a95e60b65d876a927123b0ed36bd6177d9ca6 ↗
- https://git.kernel.org/stable/c/6303ed4bbe0095f4cc195225479bf506e010d1db ↗
- https://git.kernel.org/stable/c/26168db1ce5a9766cde021b18e590a101c056614 ↗
- https://git.kernel.org/stable/c/50c662bdcd51b03033a0abed6716bfd377ba1049 ↗
- https://git.kernel.org/stable/c/4bd0b274054f2679f28b70222b607bb0afc3ab9a ↗