Description
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).
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HAffected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < ff5855e8891e1e2490741366d087fd2fbcaabc4a; >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < e51042ddc0b20d9bda5eb6dcf85a2668f9c5dae4; >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < 6e539907c0d11f514c5e0b049b27b04dff48a5b1; >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < a7a1cdb4a64ca74eb95cc46648fccb8cd3f9af27; >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < 40734ce8efc34c4a0d0222855798c0dc14b65f2e; >= f80c5dad7b6467b884c445ffea45985793b4b2d0, < b6807cfc195ef99e1ac37b2e1e60df40295daa8c; 8603d49906b231bbcd9141db7d096fa1041bc379; 0e061885bfcd65ef5d09f154f3c3c3491cc7544a; a3d50fb7ce931f08a2c6194fdc4c9a56c9ed4153; >= 4.19.47, < 4.20; >= 5.0.20, < 5.1; >= 5.1.6, < 5.2 |
| Linux | Linux | 5.2 |
References
- https://git.kernel.org/stable/c/40734ce8efc34c4a0d0222855798c0dc14b65f2ePatch
- https://git.kernel.org/stable/c/6e539907c0d11f514c5e0b049b27b04dff48a5b1Patch
- https://git.kernel.org/stable/c/a7a1cdb4a64ca74eb95cc46648fccb8cd3f9af27Patch
- https://git.kernel.org/stable/c/b6807cfc195ef99e1ac37b2e1e60df40295daa8cPatch
- https://git.kernel.org/stable/c/e51042ddc0b20d9bda5eb6dcf85a2668f9c5dae4
- https://git.kernel.org/stable/c/ff5855e8891e1e2490741366d087fd2fbcaabc4a
Timeline
- Published
- May 6, 2026
- Last modified
- Nov 11, 2026
- NVD status
- Modified