CVE-2022-49200
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
26/02/2025
Last modified:
23/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt<br />
<br />
Fix the following kernel oops in btmtksdio_interrrupt<br />
<br />
[ 14.339134] btmtksdio_interrupt+0x28/0x54<br />
[ 14.339139] process_sdio_pending_irqs+0x68/0x1a0<br />
[ 14.339144] sdio_irq_work+0x40/0x70<br />
[ 14.339154] process_one_work+0x184/0x39c<br />
[ 14.339160] worker_thread+0x228/0x3e8<br />
[ 14.339168] kthread+0x148/0x3ac<br />
[ 14.339176] ret_from_fork+0x10/0x30<br />
<br />
That happened because hdev->power_on is already called before<br />
sdio_set_drvdata which btmtksdio_interrupt handler relies on is not<br />
properly set up.<br />
<br />
The details are shown as the below: hci_register_dev would run<br />
queue_work(hdev->req_workqueue, &hdev->power_on) as WQ_HIGHPRI<br />
workqueue_struct to complete the power-on sequeunce and thus hci_power_on<br />
may run before sdio_set_drvdata is done in btmtksdio_probe.<br />
<br />
The hci_dev_do_open in hci_power_on would initialize the device and enable<br />
the interrupt and thus it is possible that btmtksdio_interrupt is being<br />
called right before sdio_set_drvdata is filled out.<br />
<br />
When btmtksdio_interrupt is being called and sdio_set_drvdata is not filled<br />
, the kernel oops is going to happen because btmtksdio_interrupt access an<br />
uninitialized pointer.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.2 (including) | 5.4.189 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.110 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.33 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 5.16.19 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.17 (including) | 5.17.2 (excluding) |
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/4d3d1f2c35a19988d3c5f0ee86038b525e830840
- https://git.kernel.org/stable/c/6d7be5afbb41c918d2f12f857f8c7efa50500be2
- https://git.kernel.org/stable/c/70a6cf749d9ff9f463490248322e5343199bc267
- https://git.kernel.org/stable/c/770a97d3f34b801de1b04737b43e02c55118c41a
- https://git.kernel.org/stable/c/874eca93966a786eace87fa6dfb206c2dd9519b1
- https://git.kernel.org/stable/c/b062a0b9c1dc1ff63094337dccfe1568d5b62023



