CVE-2026-11893: use-after-free in zephyrproject zephyr
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.
AI Analysis
Technical Summary
The Bluetooth HCI driver in Zephyr for Bouffalo Lab BLE controllers incorrectly handles buffer ownership in the bt_bflb_send() function by unconditionally calling net_buf_unref() on error paths, violating the documented contract that the caller retains ownership on failure. This leads to a double unref of the same buffer when send() returns an error, causing premature freeing of a parent buffer still queued for transmission. The resulting use-after-free corrupts the net_buf pool and can cause BLE stack crashes or memory corruption, effectively a denial of service. The vulnerability is triggered by error conditions on the host-to-controller transmit path, which are not directly controllable by remote attackers but can be influenced indirectly under heavy link load. It affects Zephyr versions 4.4.0 and 4.4.1.
Potential Impact
The vulnerability can cause denial of service on affected devices by crashing the BLE stack or corrupting memory due to use-after-free and net_buf pool corruption. There is no direct confidentiality or integrity impact reported. Remote attackers cannot directly trigger the flaw via radio packets but may influence error conditions indirectly. The impact is limited to devices using Bouffalo Lab BLE controllers with affected Zephyr versions.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or temporary workaround is indicated in the provided data. Users of affected Zephyr versions (4.4.0 and 4.4.1) on Bouffalo Lab BLE controllers should monitor vendor communications for patches or mitigations.
CVE-2026-11893: use-after-free in zephyrproject zephyr
Description
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.
CVSS v3.1
Score 5.9medium
Affected software
zephyrproject
zephyr
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Bluetooth HCI driver in Zephyr for Bouffalo Lab BLE controllers incorrectly handles buffer ownership in the bt_bflb_send() function by unconditionally calling net_buf_unref() on error paths, violating the documented contract that the caller retains ownership on failure. This leads to a double unref of the same buffer when send() returns an error, causing premature freeing of a parent buffer still queued for transmission. The resulting use-after-free corrupts the net_buf pool and can cause BLE stack crashes or memory corruption, effectively a denial of service. The vulnerability is triggered by error conditions on the host-to-controller transmit path, which are not directly controllable by remote attackers but can be influenced indirectly under heavy link load. It affects Zephyr versions 4.4.0 and 4.4.1.
Potential Impact
The vulnerability can cause denial of service on affected devices by crashing the BLE stack or corrupting memory due to use-after-free and net_buf pool corruption. There is no direct confidentiality or integrity impact reported. Remote attackers cannot directly trigger the flaw via radio packets but may influence error conditions indirectly. The impact is limited to devices using Bouffalo Lab BLE controllers with affected Zephyr versions.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or temporary workaround is indicated in the provided data. Users of affected Zephyr versions (4.4.0 and 4.4.1) on Bouffalo Lab BLE controllers should monitor vendor communications for patches or mitigations.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-06-10T15:13:51.139Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6a7aaf24bf8831d53928ad67
Added to database: 08/11/2026, 05:12:04 UTC
Last enriched: 08/11/2026, 05:31:56 UTC
Last updated: 09/25/2026, 14:11:01 UTC
Views: 63
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.