CVE-2022-49474
Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout Connecting the same socket twice consecutively in sco_sock_connect() could lead to a race condition where two sco_conn objects are created but only one is associated with the socket. If the socket is closed before the SCO connection is established, the timer associated with the dangling sco_conn object won't be canceled. As the sock object is being freed, the use-after-free problem happens when the timer callback function sco_sock_timeout() accesses the socket. Here's the call trace: dump_stack+0x107/0x163 ? refcount_inc+0x1c/ print_address_description.constprop.0+0x1c/0x47e ? refcount_inc+0x1c/0x7b kasan_report+0x13a/0x173 ? refcount_inc+0x1c/0x7b check_memory_region+0x132/0x139 refcount_inc+0x1c/0x7b sco_sock_timeout+0xb2/0x1ba process_one_work+0x739/0xbd1 ? cancel_delayed_work+0x13f/0x13f ? __raw_spin_lock_init+0xf0/0xf0 ? to_kthread+0x59/0x85 worker_thread+0x593/0x70e kthread+0x346/0x35a ? drain_workqueue+0x31a/0x31a ? kthread_bind+0x4b/0x4b ret_from_fork+0x1f/0x30
CVSS Details
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Threat Intelligence
Weaknesses 1
Affected Products 10
| Vendor | Product | Version | Range |
|---|---|---|---|
| linux | linux_kernel | * | ≥4.4.284 – <4.5 |
| linux | linux_kernel | * | ≥4.9.238 – <4.9.318 |
| linux | linux_kernel | * | ≥4.14.247 – <4.14.283 |
| linux | linux_kernel | * | ≥4.19.207 – <4.19.247 |
| linux | linux_kernel | * | ≥5.4.146 – <5.4.198 |
| linux | linux_kernel | * | ≥5.10.65 – <5.10.121 |
| linux | linux_kernel | * | ≥5.13.17 – <5.14 |
| linux | linux_kernel | * | ≥5.14.4 – <5.15.46 |
| linux | linux_kernel | * | ≥5.16 – <5.17.14 |
| linux | linux_kernel | * | ≥5.18 – <5.18.3 |
References 9
- git.kernel.org https://git.kernel.org/stable/c/36c644c63bfcaee2d3a426f45e89a9cd09799318
- git.kernel.org https://git.kernel.org/stable/c/390d82733a953c1fabf3de9c9618091a7a9c90a6
- git.kernel.org https://git.kernel.org/stable/c/537f619dea4e3fa8ed1f8f938abffe3615794bcc
- git.kernel.org https://git.kernel.org/stable/c/65d347cb39e2e6bd0c2a745ad7c928998ebb0162
- git.kernel.org https://git.kernel.org/stable/c/6f55fac0af3531cf60d11369454c41f5fc81ab3f
- git.kernel.org https://git.kernel.org/stable/c/7aa1e7d15f8a5b65f67bacb100d8fc033b21efa2
- git.kernel.org https://git.kernel.org/stable/c/7d61dbd7311ab978d8ddac1749a758de4de00374
- git.kernel.org https://git.kernel.org/stable/c/99df16007f4bbf9abfc3478cb17d10f0d7f8906e
- git.kernel.org https://git.kernel.org/stable/c/9de3dc09e56f8deacd2bdbf4cecb71e11a312405
Remediation
- git.kernel.org https://git.kernel.org/stable/c/36c644c63bfcaee2d3a426f45e89a9cd09799318
- git.kernel.org https://git.kernel.org/stable/c/390d82733a953c1fabf3de9c9618091a7a9c90a6
- git.kernel.org https://git.kernel.org/stable/c/537f619dea4e3fa8ed1f8f938abffe3615794bcc
- git.kernel.org https://git.kernel.org/stable/c/65d347cb39e2e6bd0c2a745ad7c928998ebb0162
- git.kernel.org https://git.kernel.org/stable/c/6f55fac0af3531cf60d11369454c41f5fc81ab3f
- git.kernel.org https://git.kernel.org/stable/c/7aa1e7d15f8a5b65f67bacb100d8fc033b21efa2
- git.kernel.org https://git.kernel.org/stable/c/7d61dbd7311ab978d8ddac1749a758de4de00374
- git.kernel.org https://git.kernel.org/stable/c/99df16007f4bbf9abfc3478cb17d10f0d7f8906e
- git.kernel.org https://git.kernel.org/stable/c/9de3dc09e56f8deacd2bdbf4cecb71e11a312405