CVE-2026-11893
MediumCVSS 5.9Exploitation Probability (EPSS)
Low risk5th percentile - higher than 5% of all known CVEs
Summary
The Bluetooth HCI driver for Bouffalo Lab controllers (BL60x/BL70x/BL61x) violates the buffer-ownership contract in bt_bflb_send(). On error, it frees the buffer even though the caller still owns it, leading to a double-unref and memory corruption.
Risk Assessment
The risk includes BLE stack denial of service (crash/pool corruption) and potential further memory corruption, which may cause unpredictable system behavior. The attack requires influence on the host-to-controller transmit path, e.g., by inducing controller TX failures under heavy link load.
Recommendation
Apply the vendor patch (Zephyr) for hci_bflb.c immediately to ensure compliance with the buffer-ownership contract. If a patch is unavailable, restrict the use of devices with these controllers in high-risk environments.
Original NVD description (English source)
The Bluetooth HCI driver for Bouffalo Lab on-chip BLE controllers (BL60x/BL70x/BL61x), bt_bflb_send() in drivers/bluetooth/hci/hci_bflb.c, violates the bt_hci_driver_api.send() buffer-ownership contract. That contract (documented at include/zephyr/drivers/bluetooth.h) requires the buffer reference to be consumed only on success; on error the caller still owns the reference and unrefs it. The driver instead routed all error paths through a shared label that unconditionally called net_buf_unref(buf) before returning the error code, consuming the buffer on failure as well. When send() returns an error, the host TX path (send_buf() in subsys/bluetooth/host/conn.c) unrefs the same buffer again, believing it still owns it. This double-unref over-decrements the net_buf reference count. Because the buffer is a TX fragment whose destroy callback also decrements its still-queued parent buffer, the parent is freed prematurely while reachable on the connection TX queue, producing a use-after-free and corruption of the shared net_buf pool rather than a benign leak. The error conditions are on the host-to-controller transmit path (controller send failure, or an unsupported H:4 packet type), so they are not driven directly by attacker-supplied radio bytes; a remote/adjacent peer can influence them only indirectly, e.g. by inducing controller TX failures under heavy link load. The consequence when reached is BLE-stack denial of service (crash / pool corruption) with possible further memory corruption, bounded to devices using one of these Bouffalo Lab on-chip controllers.

