CVE-2026-43119
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_sync: annotate data-races around hdev->req_status
__hci_cmd_sync_sk() sets hdev->req_status under hdev->req_lock:
hdev->req_status = HCI_REQ_PEND;
However, several other functions read or write hdev->req_status without holding any lock:
- hci_send_cmd_sync() reads req_status in hci_cmd_work (workqueue)
- hci_cmd_sync_complete() reads/writes from HCI event completion
- hci_cmd_sync_cancel() / hci_cmd_sync_cancel_sync() read/write
- hci_abort_conn() reads in connection abort path
Since __hci_cmd_sync_sk() runs on hdev->req_workqueue while hci_send_cmd_sync() runs on hdev->workqueue, these are different workqueues that can execute concurrently on different CPUs. The plain C accesses constitute a data race.
Add READ_ONCE()/WRITE_ONCE() annotations on all concurrent accesses to hdev->req_status to prevent potential compiler optimizations that could affect correctness (e.g., load fusing in the wait_event condition or store reordering).
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | f80c5dad7b6467b884c445ffea45985793b4b2d0 < 6e539907c0d11f514c5e0b049b27b04dff48a5b1 | affected |
| Linux | Linux | f80c5dad7b6467b884c445ffea45985793b4b2d0 < a7a1cdb4a64ca74eb95cc46648fccb8cd3f9af27 | affected |
| Linux | Linux | f80c5dad7b6467b884c445ffea45985793b4b2d0 < 40734ce8efc34c4a0d0222855798c0dc14b65f2e | affected |
| Linux | Linux | f80c5dad7b6467b884c445ffea45985793b4b2d0 < b6807cfc195ef99e1ac37b2e1e60df40295daa8c | affected |
| Linux | Linux | 8603d49906b231bbcd9141db7d096fa1041bc379 | affected |
| Linux | Linux | 0e061885bfcd65ef5d09f154f3c3c3491cc7544a | affected |
| Linux | Linux | a3d50fb7ce931f08a2c6194fdc4c9a56c9ed4153 | affected |
| Linux | Linux | 4.19.47 < 4.20 | affected |
| Linux | Linux | 5.0.20 < 5.1 | affected |
| Linux | Linux | 5.1.6 < 5.2 | affected |
| Linux | Linux | 5.2 | affected |
| Linux | Linux | 0 < 5.2 | unaffected |
| Linux | Linux | 6.12.83 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.24 <= 6.18.* | unaffected |
| Linux | Linux | 6.19.14 <= 6.19.* | unaffected |
| Linux | Linux | 7.0 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/6e539907c0d11f514c5e0b049b27b04dff48a5b1
- https://git.kernel.org/stable/c/a7a1cdb4a64ca74eb95cc46648fccb8cd3f9af27
- https://git.kernel.org/stable/c/40734ce8efc34c4a0d0222855798c0dc14b65f2e
- https://git.kernel.org/stable/c/b6807cfc195ef99e1ac37b2e1e60df40295daa8c
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.