Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
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
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 4.14.283, 4.19.247, 4.9.318, 5.10.121, 5.15.46, 5.17.14, 5.18.3, 5.4.198
- CVEs
- CVE-2022-49474
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 06:52 UTC · Revision 1
Source evidence
Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
core-osv · Original sourcePublished 26 Feb 2025, 02:13 UTC
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
osv:CVE-2022-49474
Kernel
Fixed versions: 4.9.318, 4.14.283, 4.19.247, 5.4.198, 5.10.121, 5.15.46, 5.17.14, 5.18.3
Complete source record
{
"id": "b766aa22ba26f13aa4da3913d8cb4376a5829fd560d1ade95412b108a71e2d55",
"url": "https://osv.dev/vulnerability/CVE-2022-49474",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout",
"summary": "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",
"evidence": "osv:CVE-2022-49474",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "4.9.318",
"evidence": "/affected/1/ranges"
},
{
"value": "4.14.283",
"evidence": "/affected/1/ranges"
},
{
"value": "4.19.247",
"evidence": "/affected/1/ranges"
},
{
"value": "5.4.198",
"evidence": "/affected/1/ranges"
},
{
"value": "5.10.121",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.46",
"evidence": "/affected/1/ranges"
},
{
"value": "5.17.14",
"evidence": "/affected/1/ranges"
},
{
"value": "5.18.3",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "CVE-2022-49474",
"aliases": [
"CVE-2022-49474"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "22c66af08230a7030bdb88accffaec3424695631"
},
{
"fixed": "9de3dc09e56f8deacd2bdbf4cecb71e11a312405"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "0115a66ebb44bd9127ccb58cf43ed23c795eb1f0"
},
{
"fixed": "7d61dbd7311ab978d8ddac1749a758de4de00374"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "bc4b08383046f3282b6fa58cfcef05bd13e52b93"
},
{
"fixed": "390d82733a953c1fabf3de9c9618091a7a9c90a6"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5ccb04c6e1fb7b97fa2e1785b67c3a1cb3527ef7"
},
{
"fixed": "6f55fac0af3531cf60d11369454c41f5fc81ab3f"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "059c2c09f4b7f97711d0d8eaa0b9877f5e7d0a75"
},
{
"fixed": "36c644c63bfcaee2d3a426f45e89a9cd09799318"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "e1dee2c1de2b4dd00eb44004a4bda6326ed07b59"
},
{
"fixed": "65d347cb39e2e6bd0c2a745ad7c928998ebb0162"
},
{
"fixed": "537f619dea4e3fa8ed1f8f938abffe3615794bcc"
},
{
"fixed": "99df16007f4bbf9abfc3478cb17d10f0d7f8906e"
},
{
"fixed": "7aa1e7d15f8a5b65f67bacb100d8fc033b21efa2"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4.9.283"
},
{
"fixed": "4.9.318"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4.14.247"
},
{
"fixed": "4.14.283"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4.19.207"
},
{
"fixed": "4.19.247"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.4.146"
},
{
"fixed": "5.4.198"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.10.65"
},
{
"fixed": "5.10.121"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4.4.284"
},
{
"fixed": "4.5"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.13.17"
},
{
"fixed": "5.14"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.14.4"
},
{
"fixed": "5.15"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "98ae477ed1540d3acbbf44d88ee237ad64275158"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "f0c389e23e2475e5837716a629c81b7a9d90cc94"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "0b9da4bde0d59c61b3675bdd80a05a726beb875a"
}
]
}
],
"versions": [
"v4.9.317",
"v4.9.316",
"v4.9.315",
"v4.9.314",
"v4.9.313",
"v4.9.312",
"v4.9.311",
"v4.9.310",
"v4.9.309",
"v4.9.308",
"v4.9.307",
"v4.9.306",
"v4.9.305",
"v4.9.304",
"v4.9.303",
"v4.9.302",
"v4.9.301",
"v4.9.300",
"v4.9.299",
"v4.9.298",
"v4.9.297",
"v4.9.296",
"v4.9.295",
"v4.9.294",
"v4.9.293",
"v4.9.292",
"v4.9.291",
"v4.9.290",
"v4.9.289",
"v4.9.288",
"v4.9.287",
"v4.9.286",
"v4.9.285",
"v4.9.284",
"v4.9.283",
"v4.14.282",
"v4.14.281",
"v4.14.280",
"v4.14.279",
"v4.14.278",
"v4.14.277",
"v4.14.276",
"v4.14.275",
"v4.14.274",
"v4.14.273",
"v4.14.272",
"v4.14.271",
"v4.14.270",
"v4.14.269",
"v4.14.268",
"v4.14.267",
"v4.14.266",
"v4.14.265",
"v4.14.264",
"v4.14.263",
"v4.14.262",
"v4.14.261",
"v4.14.260",
"v4.14.259",
"v4.14.258",
"v4.14.257",
"v4.14.256",
"v4.14.255",
"v4.14.254",
"v4.14.253",
"v4.14.252",
"v4.14.251",
"v4.14.250",
"v4.14.249",
"v4.14.248",
"v4.14.247",
"v4.19.246",
"v4.19.245",
"v4.19.244",
"v4.19.243",
"v4.19.242",
"v4.19.241",
"v4.19.240",
"v4.19.239",
"v4.19.238",
"v4.19.237",
"v4.19.236",
"v4.19.235",
"v4.19.234",
"v4.19.233",
"v4.19.232",
"v4.19.231",
"v4.19.230",
"v4.19.229",
"v4.19.228",
"v4.19.227",
"v4.19.226",
"v4.19.225",
"v4.19.224",
"v4.19.223",
"v4.19.222",
"v4.19.221",
"v4.19.220",
"v4.19.219",
"v4.19.218",
"v4.19.217",
"v4.19.216",
"v4.19.215",
"v4.19.214",
"v4.19.213",
"v4.19.212",
"v4.19.211",
"v4.19.210",
"v4.19.209",
"v4.19.208",
"v4.19.207",
"v5.4.197",
"v5.4.196",
"v5.4.195",
"v5.4.194",
"v5.4.193",
"v5.4.192",
"v5.4.191",
"v5.4.190",
"v5.4.189",
"v5.4.188",
"v5.4.187",
"v5.4.186",
"v5.4.185",
"v5.4.184",
"v5.4.183",
"v5.4.182",
"v5.4.181",
"v5.4.180",
"v5.4.179",
"v5.4.178",
"v5.4.177",
"v5.4.176",
"v5.4.175",
"v5.4.174",
"v5.4.173",
"v5.4.172",
"v5.4.171",
"v5.4.170",
"v5.4.169",
"v5.4.168",
"v5.4.167",
"v5.4.166",
"v5.4.165",
"v5.4.164",
"v5.4.163",
"v5.4.162",
"v5.4.161",
"v5.4.160",
"v5.4.159",
"v5.4.158",
"v5.4.157",
"v5.4.156",
"v5.4.155",
"v5.4.154",
"v5.4.153",
"v5.4.152",
"v5.4.151",
"v5.4.150",
"v5.4.149",
"v5.4.148",
"v5.4.147",
"v5.4.146",
"v5.10.120",
"v5.10.119",
"v5.10.118",
"v5.10.117",
"v5.10.116",
"v5.10.115",
"v5.10.114",
"v5.10.113",
"v5.10.112",
"v5.10.111",
"v5.10.110",
"v5.10.109",
"v5.10.108",
"v5.10.107",
"v5.10.106",
"v5.10.105",
"v5.10.104",
"v5.10.103",
"v5.10.102",
"v5.10.101",
"v5.10.100",
"v5.10.99",
"v5.10.98",
"v5.10.97",
"v5.10.96",
"v5.10.95",
"v5.10.94",
"v5.10.93",
"v5.10.92",
"v5.10.91",
"v5.10.90",
"v5.10.89",
"v5.10.88",
"v5.10.87",
"v5.10.86",
"v5.10.85",
"v5.10.84",
"v5.10.83",
"v5.10.82",
"v5.10.81",
"v5.10.80",
"v5.10.79",
"v5.10.78",
"v5.10.77",
"v5.10.76",
"v5.10.75",
"v5.10.74",
"v5.10.73",
"v5.10.72",
"v5.10.71",
"v5.10.70",
"v5.10.69",
"v5.10.68",
"v5.10.67",
"v5.10.66",
"v5.10.65",
"v4.4.302",
"v4.4.301",
"v4.4.300",
"v4.4.299",
"v4.4.298",
"v4.4.297",
"v4.4.296",
"v4.4.295",
"v4.4.294",
"v4.4.293",
"v4.4.292",
"v4.4.291",
"v4.4.290",
"v4.4.289",
"v4.4.288",
"v4.4.287",
"v4.4.286",
"v4.4.285",
"v4.4.284",
"v5.13.19",
"v5.13.18",
"v5.13.17",
"v5.14.21",
"v5.14.20",
"v5.14.19",
"v5.14.18",
"v5.14.17",
"v5.14.16",
"v5.14.15",
"v5.14.14",
"v5.14.13",
"v5.14.12",
"v5.14.11",
"v5.14.10",
"v5.14.9",
"v5.14.8",
"v5.14.7",
"v5.14.6",
"v5.14.5",
"v5.14.4"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49474.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "4.9.318"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.10.0"
},
{
"fixed": "4.14.283"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.15.0"
},
{
"fixed": "4.19.247"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.20.0"
},
{
"fixed": "5.4.198"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.5.0"
},
{
"fixed": "5.10.121"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.46"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.15.0"
},
{
"fixed": "5.17.14"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "5.18.3"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49474.json"
}
}
],
"modified": "2026-10-28T02:30:26.800702125Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/36c644c63bfcaee2d3a426f45e89a9cd09799318",
"https://git.kernel.org/stable/c/390d82733a953c1fabf3de9c9618091a7a9c90a6",
"https://git.kernel.org/stable/c/537f619dea4e3fa8ed1f8f938abffe3615794bcc",
"https://git.kernel.org/stable/c/65d347cb39e2e6bd0c2a745ad7c928998ebb0162",
"https://git.kernel.org/stable/c/6f55fac0af3531cf60d11369454c41f5fc81ab3f",
"https://git.kernel.org/stable/c/7aa1e7d15f8a5b65f67bacb100d8fc033b21efa2",
"https://git.kernel.org/stable/c/7d61dbd7311ab978d8ddac1749a758de4de00374",
"https://git.kernel.org/stable/c/99df16007f4bbf9abfc3478cb17d10f0d7f8906e",
"https://git.kernel.org/stable/c/9de3dc09e56f8deacd2bdbf4cecb71e11a312405",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49474.json",
"https://nvd.nist.gov/vuln/detail/CVE-2022-49474",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49474.json"
}
},
"related_cves": [
{
"value": "CVE-2022-49474",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493155,
"published_at": "2025-02-26T02:13:16.679+00:00"
}