CVE-2026-43023
Severity CVSS v4.0:
Pending analysis
Type:
CWE-362
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Publication date:
01/05/2026
Last modified:
08/05/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Bluetooth: SCO: fix race conditions in sco_sock_connect()<br />
<br />
sco_sock_connect() checks sk_state and sk_type without holding<br />
the socket lock. Two concurrent connect() syscalls on the same<br />
socket can both pass the check and enter sco_connect(), leading<br />
to use-after-free.<br />
<br />
The buggy scenario involves three participants and was confirmed<br />
with additional logging instrumentation:<br />
<br />
Thread A (connect): HCI disconnect: Thread B (connect):<br />
<br />
sco_sock_connect(sk) sco_sock_connect(sk)<br />
sk_state==BT_OPEN sk_state==BT_OPEN<br />
(pass, no lock) (pass, no lock)<br />
sco_connect(sk): sco_connect(sk):<br />
hci_dev_lock hci_dev_lock<br />
hci_connect_sco hcon1<br />
sco_conn_add->conn1<br />
lock_sock(sk)<br />
sco_chan_add:<br />
conn1->sk = sk<br />
sk->conn = conn1<br />
sk_state=BT_CONNECT<br />
release_sock<br />
hci_dev_unlock<br />
hci_dev_lock<br />
sco_conn_del:<br />
lock_sock(sk)<br />
sco_chan_del:<br />
sk->conn=NULL<br />
conn1->sk=NULL<br />
sk_state=<br />
BT_CLOSED<br />
SOCK_ZAPPED<br />
release_sock<br />
hci_dev_unlock<br />
(unblocked)<br />
hci_connect_sco<br />
-> hcon2<br />
sco_conn_add<br />
-> conn2<br />
lock_sock(sk)<br />
sco_chan_add:<br />
sk->conn=conn2<br />
sk_state=<br />
BT_CONNECT<br />
// zombie sk!<br />
release_sock<br />
hci_dev_unlock<br />
<br />
Thread B revives a BT_CLOSED + SOCK_ZAPPED socket back to<br />
BT_CONNECT. Subsequent cleanup triggers double sock_put() and<br />
use-after-free. Meanwhile conn1 is leaked as it was orphaned<br />
when sco_conn_del() cleared the association.<br />
<br />
Fix this by:<br />
- Moving lock_sock() before the sk_state/sk_type checks in<br />
sco_sock_connect() to serialize concurrent connect attempts<br />
- Fixing the sk_type != SOCK_SEQPACKET check to actually<br />
return the error instead of just assigning it<br />
- Adding a state re-check in sco_connect() after lock_sock()<br />
to catch state changes during the window between the locks<br />
- Adding sco_pi(sk)->conn check in sco_chan_add() to prevent<br />
double-attach of a socket to multiple connections<br />
- Adding hci_conn_drop() on sco_chan_add failure to prevent<br />
HCI connection leaks
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.109 (including) | 6.1.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.3.1 (including) | 6.6.134 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.81 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.22 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.3:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.3:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/7e296ffdab5bdab718dff7c14288fdcb9154fa27
- https://git.kernel.org/stable/c/8a5b0135d4a5d9683203a3d9a12a711ccec5936b
- https://git.kernel.org/stable/c/98c8d3bfdaa657d8f472dbbebd7ea8cd816d8a8d
- https://git.kernel.org/stable/c/adb90cd0f9f7a8d438fcb93354040fbafc5ae2a0
- https://git.kernel.org/stable/c/d002bd11024bd231bcb606877e33951ffb7bed14
- https://git.kernel.org/stable/c/dabf22269242e2f2bf44c43fcdc2fa763df7f9cc



