CVE-2026-43119 in Linuxinfo

Summary

by MITRE • 05/06/2026

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).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 07/25/2026

This vulnerability represents a critical data race condition within the Linux kernel's Bluetooth subsystem that specifically affects the HCI (Host Controller Interface) synchronization mechanisms. The issue occurs in the hci_sync component where the hdev->req_status variable is accessed concurrently without proper synchronization mechanisms. The core problem stems from the inconsistent locking strategy where __hci_cmd_sync_sk() function establishes hdev->req_status under the protection of hdev->req_lock but multiple other functions access this same variable without any locking mechanism. This creates a classic race condition scenario where concurrent execution paths can simultaneously read and modify the same memory location, leading to unpredictable behavior and potential system instability.

The technical flaw manifests through multiple code paths that access hdev->req_status without proper synchronization, creating a complex concurrency issue that spans different kernel workqueues. Specifically hci_send_cmd_sync() function accesses req_status from within the hci_cmd_work workqueue context, while hci_cmd_sync_complete() handles reads and writes during HCI event completion processing. Additionally, hci_cmd_sync_cancel() and hci_cmd_sync_cancel_sync() functions also perform concurrent access operations, and hci_abort_conn() reads the status during connection abort operations. The fundamental issue is that __hci_cmd_sync_sk() executes on hdev->req_workqueue while hci_send_cmd_sync() operates on the main hdev->workqueue, meaning these operations can execute simultaneously on different CPU cores, making the race condition highly probable under normal system load conditions.

The operational impact of this vulnerability extends beyond simple data corruption, as it represents a potential security risk that could be exploited by malicious actors to cause system instability or potentially escalate privileges. The race condition can result in inconsistent state management within the Bluetooth subsystem, leading to connection failures, data loss, or more severe system crashes. Given that Bluetooth is a fundamental component in many embedded systems and mobile devices, this vulnerability could affect a wide range of hardware platforms and operating system configurations. The issue is particularly concerning because it involves kernel-level memory access patterns that can be difficult to detect through normal testing procedures and may only manifest under specific concurrent execution conditions.

The mitigation strategy involves implementing proper memory access annotations using READ_ONCE() and WRITE_ONCE() macros to prevent compiler optimizations that could exacerbate the race condition. These annotations ensure that memory accesses are properly ordered and prevent the compiler from performing optimizations such as load fusing in wait_event conditions or store reordering that could compromise the correctness of the synchronization mechanism. The solution addresses the root cause by ensuring all concurrent accesses to hdev->req_status are properly annotated, preventing both the data race and the potential compiler-induced correctness issues. This approach aligns with established best practices for kernel-level concurrency control and follows the principles outlined in CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization) and ATT&CK technique T1068 (Local Privilege Escalation through Kernel Exploitation) when considering the potential security implications of such vulnerabilities.

Responsible

Linux

Reservation

05/01/2026

Disclosure

05/06/2026

Moderation

accepted

EPSS

0.00162

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!