In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hciqca: Use deltimer_sync() before freeing
While looking at a crash report on a timer list being corrupted, which usually happens when a timer is freed while still active. This is commonly triggered by code calling deltimer() instead of deltimer_sync() just before freeing.
One possible culprit is the hci_qca driver, which does exactly that.
Eric mentioned that wakeretranstimer could be rearmed via the work queue, so also move the destruction of the work queue before deltimersync().
[
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4989bb03342941f2b730b37dfa38bce27b543661",
"id": "CVE-2022-49555-0cd96f96",
"signature_version": "v1",
"target": {
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"89576182324682455811084539690417044016",
"227735536535222409376081039047620694425",
"134392330128108354644327976121023571241",
"233634701649690411917672102623412915151",
"34618231214875223090457591245612085797",
"107849667433214136943309132040899516530"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4989bb03342941f2b730b37dfa38bce27b543661",
"id": "CVE-2022-49555-143ef4e9",
"signature_version": "v1",
"target": {
"function": "qca_close",
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "193787967229885238352705235135314366263",
"length": 479.0
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2717654ae022e6ea959a4b7b762702fe1a4690c2",
"id": "CVE-2022-49555-18dc32a8",
"signature_version": "v1",
"target": {
"function": "qca_close",
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "193787967229885238352705235135314366263",
"length": 479.0
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@37d17f63d085d601011964ade7371aeebeb6ed4b",
"id": "CVE-2022-49555-3272e19f",
"signature_version": "v1",
"target": {
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"89576182324682455811084539690417044016",
"227735536535222409376081039047620694425",
"134392330128108354644327976121023571241",
"233634701649690411917672102623412915151",
"34618231214875223090457591245612085797",
"107849667433214136943309132040899516530"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@db03727b4bbbbb36e6ef4cb655c670eefb6448e9",
"id": "CVE-2022-49555-401df768",
"signature_version": "v1",
"target": {
"function": "qca_close",
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "193787967229885238352705235135314366263",
"length": 479.0
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@72ef98445aca568a81c2da050532500a8345ad3a",
"id": "CVE-2022-49555-510cc522",
"signature_version": "v1",
"target": {
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"89576182324682455811084539690417044016",
"227735536535222409376081039047620694425",
"134392330128108354644327976121023571241",
"233634701649690411917672102623412915151",
"34618231214875223090457591245612085797",
"107849667433214136943309132040899516530"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@37d17f63d085d601011964ade7371aeebeb6ed4b",
"id": "CVE-2022-49555-5daca766",
"signature_version": "v1",
"target": {
"function": "qca_close",
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "193787967229885238352705235135314366263",
"length": 479.0
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@72ef98445aca568a81c2da050532500a8345ad3a",
"id": "CVE-2022-49555-65a6df5f",
"signature_version": "v1",
"target": {
"function": "qca_close",
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "193787967229885238352705235135314366263",
"length": 479.0
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2717654ae022e6ea959a4b7b762702fe1a4690c2",
"id": "CVE-2022-49555-674b5e80",
"signature_version": "v1",
"target": {
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"89576182324682455811084539690417044016",
"227735536535222409376081039047620694425",
"134392330128108354644327976121023571241",
"233634701649690411917672102623412915151",
"34618231214875223090457591245612085797",
"107849667433214136943309132040899516530"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@db03727b4bbbbb36e6ef4cb655c670eefb6448e9",
"id": "CVE-2022-49555-ac13ff8b",
"signature_version": "v1",
"target": {
"file": "drivers/bluetooth/hci_qca.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"89576182324682455811084539690417044016",
"227735536535222409376081039047620694425",
"134392330128108354644327976121023571241",
"233634701649690411917672102623412915151",
"34618231214875223090457591245612085797",
"107849667433214136943309132040899516530"
],
"threshold": 0.9
}
}
]