CVE-2023-53673

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-53673
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53673.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-53673
Downstream
Related
Published
2025-10-07T15:21:29Z
Modified
2025-10-21T18:19:57.943808Z
Summary
Bluetooth: hci_event: call disconnect callback before deleting conn
Details

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_event: call disconnect callback before deleting conn

In hcicsdisconnect, we do hciconndel even if disconnection failed.

ISO, L2CAP and SCO connections refer to the hciconn without hciconnget, so disconncfm must be called so they can clean up their conn, otherwise use-after-free occurs.

ISO:

isosockconnect:880: sk 00000000eabd6557 isoconnectcis:356: 70:1a:b8:98:ff:a2 -> 28:3d:c2:4a:7e:da ... isoconnadd:140: hcon 000000001696f1fd conn 00000000b6251073 hcidevput:1487: hci0 orig refcnt 17 _isochanadd:214: conn 00000000b6251073 isosockcleartimer:117: sock 00000000eabd6557 state 3 ... hcirxwork:4085: hci0 Event packet hcieventpacket:7601: hci0: event 0x0f hcicmdstatusevt:4346: hci0: opcode 0x0406 hcicsdisconnect:2760: hci0: status 0x0c hcisentcmddata:3107: hci0 opcode 0x0406 hciconndel:1151: hci0 hcon 000000001696f1fd handle 2560 hciconnunlink:1102: hci0: hcon 000000001696f1fd hciconndrop:1451: hcon 00000000d8521aaf orig refcnt 2 hcichanlistflush:2780: hcon 000000001696f1fd hcidevput:1487: hci0 orig refcnt 21 hcidevput:1487: hci0 orig refcnt 20 hcireqcmdcomplete:3978: opcode 0x0406 status 0x0c ... <no iso* activity on sk/conn> ... isosock_sendmsg:1098: sock 00000000dea5e2e0, sk 00000000eabd6557 BUG: kernel NULL pointer dereference, address: 0000000000000668 PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP PTI Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-1.fc38 04/01/2014

RIP: 0010:isosocksendmsg (net/bluetooth/iso.c:1112) bluetooth

L2CAP:

hcicmdstatusevt:4359: hci0: opcode 0x0406 hcicsdisconnect:2760: hci0: status 0x0c hcisentcmddata:3085: hci0 opcode 0x0406 hciconndel:1151: hci0 hcon ffff88800c999000 handle 3585 hciconnunlink:1102: hci0: hcon ffff88800c999000 hcichanlistflush:2780: hcon ffff88800c999000 hcichandel:2761: hci0 hcon ffff88800c999000 chan ffff888018ddd280 ... BUG: KASAN: slab-use-after-free in hcisend_acl+0x2d/0x540 [bluetooth] Read of size 8 at addr ffff888018ddd298 by task bluetoothd/1175

CPU: 0 PID: 1175 Comm: bluetoothd Tainted: G E 6.4.0-rc4+ #2 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-1.fc38 04/01/2014 Call Trace: <TASK> dumpstacklvl+0x5b/0x90 printreport+0xcf/0x670 ? virtaddrvalid+0xf8/0x180 ? hcisendacl+0x2d/0x540 [bluetooth] kasanreport+0xa8/0xe0 ? hcisendacl+0x2d/0x540 [bluetooth] hcisendacl+0x2d/0x540 [bluetooth] ? _pfxlockacquire+0x10/0x10 l2capchansend+0x1fd/0x1300 [bluetooth] ? l2capsocksendmsg+0xf2/0x170 [bluetooth] ? pfxl2capchansend+0x10/0x10 [bluetooth] ? lockrelease+0x1d5/0x3c0 ? markheldlocks+0x1a/0x90 l2capsocksendmsg+0x100/0x170 [bluetooth] sockwriteiter+0x275/0x280 ? _pfxsockwriteiter+0x10/0x10 ? _pfxlockacquire+0x10/0x10 doiterreadvwritev+0x176/0x220 ? _pfxdoiterreadvwritev+0x10/0x10 ? findheldlock+0x83/0xa0 ? selinuxfilepermission+0x13e/0x210 doiterwrite+0xda/0x340 vfswritev+0x1b4/0x400 ? _pfxvfswritev+0x10/0x10 ? _seccompfilter+0x112/0x750 ? populateseccompdata+0x182/0x220 ? _fgetlight+0xdf/0x100 ? dowritev+0x19d/0x210 dowritev+0x19d/0x210 ? _pfxdowritev+0x10/0x10 ? markheldlocks+0x1a/0x90 dosyscall64+0x60/0x90 ? lockdephardirqsonprepare+0x149/0x210 ? dosyscall64+0x6c/0x90 ? lockdephardirqsonprepare+0x149/0x210 entrySYSCALL64afterhwframe+0x72/0xdc RIP: 0033:0x7ff45cb23e64 Code: 15 d1 1f 0d 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 f3 0f 1e fa 80 3d 9d a7 0d 00 00 74 13 b8 14 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 48 83 ec 28 89 54 24 1c 48 89 RSP: 002b:00007fff21ae09b8 EFLAGS: 00000202 ORIGRAX: 0000000000000014 RAX: ffffffffffffffda RBX: ---truncated---

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b8d290525e3972b5e876b2649a42bf4081d753fe
Fixed
59bd1e476bbc7bc6dff3c61bba787095a4839796
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b8d290525e3972b5e876b2649a42bf4081d753fe
Fixed
093a07052406b363b1b2ab489e17dbadaf3e509b
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b8d290525e3972b5e876b2649a42bf4081d753fe
Fixed
7f7cfcb6f0825652973b780f248603e23f16ee90

Affected versions

v5.*

v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v5.5
v5.6
v5.6-rc1
v5.6-rc2
v5.6-rc3
v5.6-rc4
v5.6-rc5
v5.6-rc6
v5.6-rc7
v5.7
v5.7-rc1
v5.7-rc2
v5.7-rc3
v5.7-rc4
v5.7-rc5
v5.7-rc6
v5.7-rc7
v5.8
v5.8-rc1
v5.8-rc2
v5.8-rc3
v5.8-rc4
v5.8-rc5
v5.8-rc6
v5.8-rc7
v5.9
v5.9-rc1
v5.9-rc2
v5.9-rc3
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.5
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.4.6
v6.5-rc1

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.7.0
Fixed
6.1.42
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.7