In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: Fix hcisuspendsync crash
If hciunregisterdev() frees the hcidev object but hcisuspendnotifier may still be accessing it, it can cause the program to crash. Here's the call trace: <4>[102152.653246] Call Trace: <4>[102152.653254] hcisuspendsync+0x109/0x301 [bluetooth] <4>[102152.653259] hcisuspenddev+0x78/0xcd [bluetooth] <4>[102152.653263] hcisuspendnotifier+0x42/0x7a [bluetooth] <4>[102152.653268] notifiercall_chain+0x43/0x6b <4>[102152.653271] __blockingnotifiercall_chain+0x48/0x69 <4>[102152.653273] __pmnotifiercallchain+0x22/0x39 <4>[102152.653276] pmsuspend+0x287/0x57c <4>[102152.653278] statestore+0xae/0xe5 <4>[102152.653281] kernfsfop_write+0x109/0x173 <4>[102152.653284] __vfswrite+0x16f/0x1a2 <4>[102152.653287] ? selinuxfilepermission+0xca/0x16f <4>[102152.653289] ? securityfilepermission+0x36/0x109 <4>[102152.653291] vfswrite+0x114/0x21d <4>[102152.653293] __x64syswrite+0x7b/0xdb <4>[102152.653296] dosyscall64+0x59/0x194 <4>[102152.653299] entrySYSCALL64afterhwframe+0x5c/0xc1
This patch holds the reference count of the hcidev object while processing it in hcisuspend_notifier to avoid potential crash caused by the race condition.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53520.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53520.json"
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@573ebae162111063eedc6c838a659ba628f66a0f",
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2023-53520-a9a5b70c",
"digest": {
"length": 483.0,
"function_hash": "331866978352786302699493693003911170829"
},
"signature_type": "Function",
"target": {
"file": "net/bluetooth/hci_core.c",
"function": "hci_suspend_notifier"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@573ebae162111063eedc6c838a659ba628f66a0f",
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2023-53520-de439ac0",
"digest": {
"threshold": 0.9,
"line_hashes": [
"291507600836763250565660579206556082974",
"149530486916037701920147912212017761847",
"132046996664633393649135565836111620399",
"168297571111958430171272228543736303632",
"117891304786823163507976747014547491384",
"189676659383456245320151514429191253560"
]
},
"signature_type": "Line",
"target": {
"file": "net/bluetooth/hci_core.c"
}
}
]