{"api_version":"1","generated_at":"2026-08-28T23:58:53+00:00","cve":"CVE-2026-80666","urls":{"html":"https://cve.report/CVE-2026-80666","api":"https://cve.report/api/cve/CVE-2026-80666.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-80666","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-80666"},"summary":{"title":"Bluetooth: sco: Fix a race condition in sco_sock_timeout()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: sco: Fix a race condition in sco_sock_timeout()\n\nsco_sock_timeout() runs asynchronously and lock_sock(sk). If the socket\nis closing while the timer is running, it holds the same lock\n(lock_sock(sk)) twice, leading to a deadlock.\n\nCPU 0                      CPU 1\n====================       ======================\nsco_sock_close()\n                           sco_sock_timeout()\nlock_sock(sk) // <-- LOCK\n  __sco_sock_close()\n    sco_chan_del()\n      sco_conn_put()\n\t      sco_conn_free()\n\t        disable_delayed_work_sync()\n\t                           lock(sk) // <-- SAME LOCK\n\nFix this by moving disable_delayed_work_sync() outside of lock_sock(sk),\nensuring that no lock_sock(sk) is held before sco_sock_timeout().\n\nLockdep splat:\n\nWARNING: possible circular locking dependency detected\n6.13.0-rc4 #7 Not tainted\n\nsyz-executor292/9514 is trying to acquire lock:\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_lock_acquire sect/v6.13-rc4/./include/linux/rcupdate.h:337 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_read_lock sect/v6.13-rc4/./include/linux/rcupdate.h:849 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4137 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: __flush_work+0xd1/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n\nbut task is already holding lock:\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: sco_sock_close+0x25/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:524\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-> #1 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}:\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       lock_sock_nested+0x48/0x130 sect/v6.13-rc4/net/core/sock.c:3622\n       lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\n       sco_sock_timeout+0xbe/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:158\n       process_one_work sect/v6.13-rc4/kernel/workqueue.c:3229 [inline]\n       process_scheduled_works+0xa99/0x18f0 sect/v6.13-rc4/kernel/workqueue.c:3310\n       worker_thread+0x8a9/0xd80 sect/v6.13-rc4/kernel/workqueue.c:3391\n       kthread+0x2c6/0x360 sect/v6.13-rc4/kernel/kthread.c:389\n       ret_from_fork+0x4e/0x80 sect/v6.13-rc4/arch/x86/kernel/process.c:147\n       ret_from_fork_asm+0x1a/0x30 sect/v6.13-rc4/arch/x86/entry/entry_64.S:244\n\n-> #0 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}:\n       check_prev_add sect/v6.13-rc4/kernel/locking/lockdep.c:3161 [inline]\n       check_prevs_add sect/v6.13-rc4/kernel/locking/lockdep.c:3280 [inline]\n       validate_chain+0x1888/0x5760 sect/v6.13-rc4/kernel/locking/lockdep.c:3904\n       __lock_acquire+0x13b4/0x2120 sect/v6.13-rc4/kernel/locking/lockdep.c:5226\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       touch_work_lockdep_map sect/v6.13-rc4/kernel/workqueue.c:3909 [inline]\n       start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4163 [inline]\n       __flush_work+0x70f/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n       __cancel_work_sync sect/v6.13-rc4/kernel/workqueue.c:4351 [inline]\n       disable_delayed_work_sync+0xbb/0xf0 sect/v6.13-rc4/kernel/workqueue.c:4514\n       sco_conn_free sect/v6.13-rc4/net/bluetooth/sco.c:95 [inline]\n       kref_put sect/v6.13-rc4/./include/linux/kref.h:65 [inline]\n       sco_conn_put+0x18f/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:107\n       sco_chan_del+0xe2/0x210 sect/v6.13-rc4/net/bluetooth/sco.c:236\n       sco_sock_close+0x8f/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:526\n       sco_sock_release+0x62/0x2d0 sect/v6.13-rc4/net/blueto\n---truncated---","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-28 08:16:51","updated_at":"2026-08-28 08:16:51"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/da4d8eea0c5f33ea35c0e1d9e5f3e439f3b987ce","name":"https://git.kernel.org/stable/c/da4d8eea0c5f33ea35c0e1d9e5f3e439f3b987ce","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a50da115b5888062d32c86a548a29b4e2559d7ec","name":"https://git.kernel.org/stable/c/a50da115b5888062d32c86a548a29b4e2559d7ec","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/0f8a5dcc66648b6e1458a9f3ba4c5a0463a228fc","name":"https://git.kernel.org/stable/c/0f8a5dcc66648b6e1458a9f3ba4c5a0463a228fc","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-80666","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-80666","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected e6720779ae612a14ac4ba7fe4fd5b27d900d932c da4d8eea0c5f33ea35c0e1d9e5f3e439f3b987ce git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected e6720779ae612a14ac4ba7fe4fd5b27d900d932c a50da115b5888062d32c86a548a29b4e2559d7ec git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected e6720779ae612a14ac4ba7fe4fd5b27d900d932c 0f8a5dcc66648b6e1458a9f3ba4c5a0463a228fc git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.13","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.13 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.40 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.5 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/bluetooth/sco.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"da4d8eea0c5f33ea35c0e1d9e5f3e439f3b987ce","status":"affected","version":"e6720779ae612a14ac4ba7fe4fd5b27d900d932c","versionType":"git"},{"lessThan":"a50da115b5888062d32c86a548a29b4e2559d7ec","status":"affected","version":"e6720779ae612a14ac4ba7fe4fd5b27d900d932c","versionType":"git"},{"lessThan":"0f8a5dcc66648b6e1458a9f3ba4c5a0463a228fc","status":"affected","version":"e6720779ae612a14ac4ba7fe4fd5b27d900d932c","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/bluetooth/sco.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.13"},{"lessThan":"6.13","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.40","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.40","versionStartIncluding":"6.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.5","versionStartIncluding":"6.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"6.13","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: sco: Fix a race condition in sco_sock_timeout()\n\nsco_sock_timeout() runs asynchronously and lock_sock(sk). If the socket\nis closing while the timer is running, it holds the same lock\n(lock_sock(sk)) twice, leading to a deadlock.\n\nCPU 0                      CPU 1\n====================       ======================\nsco_sock_close()\n                           sco_sock_timeout()\nlock_sock(sk) // <-- LOCK\n  __sco_sock_close()\n    sco_chan_del()\n      sco_conn_put()\n\t      sco_conn_free()\n\t        disable_delayed_work_sync()\n\t                           lock(sk) // <-- SAME LOCK\n\nFix this by moving disable_delayed_work_sync() outside of lock_sock(sk),\nensuring that no lock_sock(sk) is held before sco_sock_timeout().\n\nLockdep splat:\n\nWARNING: possible circular locking dependency detected\n6.13.0-rc4 #7 Not tainted\n\nsyz-executor292/9514 is trying to acquire lock:\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_lock_acquire sect/v6.13-rc4/./include/linux/rcupdate.h:337 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_read_lock sect/v6.13-rc4/./include/linux/rcupdate.h:849 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4137 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: __flush_work+0xd1/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n\nbut task is already holding lock:\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: sco_sock_close+0x25/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:524\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-> #1 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}:\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       lock_sock_nested+0x48/0x130 sect/v6.13-rc4/net/core/sock.c:3622\n       lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\n       sco_sock_timeout+0xbe/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:158\n       process_one_work sect/v6.13-rc4/kernel/workqueue.c:3229 [inline]\n       process_scheduled_works+0xa99/0x18f0 sect/v6.13-rc4/kernel/workqueue.c:3310\n       worker_thread+0x8a9/0xd80 sect/v6.13-rc4/kernel/workqueue.c:3391\n       kthread+0x2c6/0x360 sect/v6.13-rc4/kernel/kthread.c:389\n       ret_from_fork+0x4e/0x80 sect/v6.13-rc4/arch/x86/kernel/process.c:147\n       ret_from_fork_asm+0x1a/0x30 sect/v6.13-rc4/arch/x86/entry/entry_64.S:244\n\n-> #0 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}:\n       check_prev_add sect/v6.13-rc4/kernel/locking/lockdep.c:3161 [inline]\n       check_prevs_add sect/v6.13-rc4/kernel/locking/lockdep.c:3280 [inline]\n       validate_chain+0x1888/0x5760 sect/v6.13-rc4/kernel/locking/lockdep.c:3904\n       __lock_acquire+0x13b4/0x2120 sect/v6.13-rc4/kernel/locking/lockdep.c:5226\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       touch_work_lockdep_map sect/v6.13-rc4/kernel/workqueue.c:3909 [inline]\n       start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4163 [inline]\n       __flush_work+0x70f/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n       __cancel_work_sync sect/v6.13-rc4/kernel/workqueue.c:4351 [inline]\n       disable_delayed_work_sync+0xbb/0xf0 sect/v6.13-rc4/kernel/workqueue.c:4514\n       sco_conn_free sect/v6.13-rc4/net/bluetooth/sco.c:95 [inline]\n       kref_put sect/v6.13-rc4/./include/linux/kref.h:65 [inline]\n       sco_conn_put+0x18f/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:107\n       sco_chan_del+0xe2/0x210 sect/v6.13-rc4/net/bluetooth/sco.c:236\n       sco_sock_close+0x8f/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:526\n       sco_sock_release+0x62/0x2d0 sect/v6.13-rc4/net/blueto\n---truncated---"}],"providerMetadata":{"dateUpdated":"2026-08-28T06:49:08.684Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/da4d8eea0c5f33ea35c0e1d9e5f3e439f3b987ce"},{"url":"https://git.kernel.org/stable/c/a50da115b5888062d32c86a548a29b4e2559d7ec"},{"url":"https://git.kernel.org/stable/c/0f8a5dcc66648b6e1458a9f3ba4c5a0463a228fc"}],"title":"Bluetooth: sco: Fix a race condition in sco_sock_timeout()","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-80666","datePublished":"2026-08-28T06:49:08.684Z","dateReserved":"2026-08-26T14:34:25.781Z","dateUpdated":"2026-08-28T06:49:08.684Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-28 08:16:51","lastModifiedDate":"2026-08-28 08:16:51","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"80666","Ordinal":"1","Title":"Bluetooth: sco: Fix a race condition in sco_sock_timeout()","CVE":"CVE-2026-80666","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"80666","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: sco: Fix a race condition in sco_sock_timeout()\n\nsco_sock_timeout() runs asynchronously and lock_sock(sk). If the socket\nis closing while the timer is running, it holds the same lock\n(lock_sock(sk)) twice, leading to a deadlock.\n\nCPU 0                      CPU 1\n====================       ======================\nsco_sock_close()\n                           sco_sock_timeout()\nlock_sock(sk) // <-- LOCK\n  __sco_sock_close()\n    sco_chan_del()\n      sco_conn_put()\n\t      sco_conn_free()\n\t        disable_delayed_work_sync()\n\t                           lock(sk) // <-- SAME LOCK\n\nFix this by moving disable_delayed_work_sync() outside of lock_sock(sk),\nensuring that no lock_sock(sk) is held before sco_sock_timeout().\n\nLockdep splat:\n\nWARNING: possible circular locking dependency detected\n6.13.0-rc4 #7 Not tainted\n\nsyz-executor292/9514 is trying to acquire lock:\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_lock_acquire sect/v6.13-rc4/./include/linux/rcupdate.h:337 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: rcu_read_lock sect/v6.13-rc4/./include/linux/rcupdate.h:849 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4137 [inline]\nffff8881115d5070 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}, at: __flush_work+0xd1/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n\nbut task is already holding lock:\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\nffff88807db3a258 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}, at: sco_sock_close+0x25/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:524\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-> #1 (sk_lock-AF_BLUETOOTH-BTPROTO_SCO){+.+.}-{0:0}:\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       lock_sock_nested+0x48/0x130 sect/v6.13-rc4/net/core/sock.c:3622\n       lock_sock sect/v6.13-rc4/./include/net/sock.h:1623 [inline]\n       sco_sock_timeout+0xbe/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:158\n       process_one_work sect/v6.13-rc4/kernel/workqueue.c:3229 [inline]\n       process_scheduled_works+0xa99/0x18f0 sect/v6.13-rc4/kernel/workqueue.c:3310\n       worker_thread+0x8a9/0xd80 sect/v6.13-rc4/kernel/workqueue.c:3391\n       kthread+0x2c6/0x360 sect/v6.13-rc4/kernel/kthread.c:389\n       ret_from_fork+0x4e/0x80 sect/v6.13-rc4/arch/x86/kernel/process.c:147\n       ret_from_fork_asm+0x1a/0x30 sect/v6.13-rc4/arch/x86/entry/entry_64.S:244\n\n-> #0 ((work_completion)(&(&conn->timeout_work)->work)){+.+.}-{0:0}:\n       check_prev_add sect/v6.13-rc4/kernel/locking/lockdep.c:3161 [inline]\n       check_prevs_add sect/v6.13-rc4/kernel/locking/lockdep.c:3280 [inline]\n       validate_chain+0x1888/0x5760 sect/v6.13-rc4/kernel/locking/lockdep.c:3904\n       __lock_acquire+0x13b4/0x2120 sect/v6.13-rc4/kernel/locking/lockdep.c:5226\n       lock_acquire+0x1c4/0x520 sect/v6.13-rc4/kernel/locking/lockdep.c:5849\n       touch_work_lockdep_map sect/v6.13-rc4/kernel/workqueue.c:3909 [inline]\n       start_flush_work sect/v6.13-rc4/kernel/workqueue.c:4163 [inline]\n       __flush_work+0x70f/0xc40 sect/v6.13-rc4/kernel/workqueue.c:4195\n       __cancel_work_sync sect/v6.13-rc4/kernel/workqueue.c:4351 [inline]\n       disable_delayed_work_sync+0xbb/0xf0 sect/v6.13-rc4/kernel/workqueue.c:4514\n       sco_conn_free sect/v6.13-rc4/net/bluetooth/sco.c:95 [inline]\n       kref_put sect/v6.13-rc4/./include/linux/kref.h:65 [inline]\n       sco_conn_put+0x18f/0x270 sect/v6.13-rc4/net/bluetooth/sco.c:107\n       sco_chan_del+0xe2/0x210 sect/v6.13-rc4/net/bluetooth/sco.c:236\n       sco_sock_close+0x8f/0x100 sect/v6.13-rc4/net/bluetooth/sco.c:526\n       sco_sock_release+0x62/0x2d0 sect/v6.13-rc4/net/blueto\n---truncated---","Type":"Description","Title":"Bluetooth: sco: Fix a race condition in sco_sock_timeout()"}]}}}