| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2025-21827: Bluetooth: btusb: mediatek: Add locks for usb_driver_claim_interface() |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| Bluetooth: btusb: mediatek: Add locks for usb_driver_claim_interface() |
| |
| The documentation for usb_driver_claim_interface() says that "the |
| device lock" is needed when the function is called from places other |
| than probe(). This appears to be the lock for the USB interface |
| device. The Mediatek btusb code gets called via this path: |
| |
| Workqueue: hci0 hci_power_on [bluetooth] |
| Call trace: |
| usb_driver_claim_interface |
| btusb_mtk_claim_iso_intf |
| btusb_mtk_setup |
| hci_dev_open_sync |
| hci_power_on |
| process_scheduled_works |
| worker_thread |
| kthread |
| |
| With the above call trace the device lock hasn't been claimed. Claim |
| it. |
| |
| Without this fix, we'd sometimes see the error "Failed to claim iso |
| interface". Sometimes we'd even see worse errors, like a NULL pointer |
| dereference (where `intf->dev.driver` was NULL) with a trace like: |
| |
| Call trace: |
| usb_suspend_both |
| usb_runtime_suspend |
| __rpm_callback |
| rpm_suspend |
| pm_runtime_work |
| process_scheduled_works |
| |
| Both errors appear to be fixed with the proper locking. |
| |
| The Linux kernel CVE team has assigned CVE-2025-21827 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 6.11 with commit ceac1cb0259de682d78f5c784ef8e0b13022e9d9 and fixed in 6.12.13 with commit 930e1790b99e5839e1af69d2f7fd808f1fba2df9 |
| Issue introduced in 6.11 with commit ceac1cb0259de682d78f5c784ef8e0b13022e9d9 and fixed in 6.13.2 with commit 4194766ec8756f4f654d595ae49962acbac49490 |
| Issue introduced in 6.11 with commit ceac1cb0259de682d78f5c784ef8e0b13022e9d9 and fixed in 6.14 with commit e9087e828827e5a5c85e124ce77503f2b81c3491 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2025-21827 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/bluetooth/btusb.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/930e1790b99e5839e1af69d2f7fd808f1fba2df9 |
| https://git.kernel.org/stable/c/4194766ec8756f4f654d595ae49962acbac49490 |
| https://git.kernel.org/stable/c/e9087e828827e5a5c85e124ce77503f2b81c3491 |