The Bluetooth HCI driver for Bouffalo Lab on-chip BLE controllers (BL60x/BL70x/BL61x), btbflbsend() in drivers/bluetooth/hci/hcibflb.c, violates the bthcidriverapi.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 netbufunref(buf) before returning the error code, consuming the buffer on failure as well.
When send() returns an error, the host TX path (sendbuf() in subsys/bluetooth/host/conn.c) unrefs the same buffer again, believing it still owns it. This double-unref over-decrements the netbuf 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.
{
"cwe_ids": [
"CWE-415"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/11xxx/CVE-2026-11893.json",
"cna_assigner": "zephyr"
}"2026-08-13T08:22:29Z"
[
{
"id": "CVE-2026-11893-15ac4de3",
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 1265.0,
"function_hash": "226881773454050183551403034836331380422"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/76d92d502b30218aaf11cbbe1be180a317627bb9",
"target": {
"function": "bt_bflb_send",
"file": "drivers/bluetooth/hci/hci_bflb.c"
}
},
{
"id": "CVE-2026-11893-ad9893cb",
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"18072795392702696080439128071587689539",
"198813787744207654215890589728897653937",
"158820056818590277024230035500344846713",
"12750591706990312482651231946681551694",
"63213941988012335124585242776049842396",
"41448333500293620719504467010327834494",
"239981764917559746895776441528409519134",
"103431136381742620376045719852805650016",
"320592333589621037973354445665561012360",
"331816988530001928164642018194830563780",
"304743550420815742830272304802414051188",
"2000398518571480097176141820631283744",
"166285958029737031287767396829097906739",
"19456876009473520948894821128434440693",
"156004365950532716655313983041051826353",
"265230963830787615286421467234495083070",
"109999722085655267975804195666368615607",
"15156075185953405868213754404250594802",
"245636040323895663722919768696811738496",
"24446558233427148883025457253823405746",
"47758802025733740376791157932106408890",
"297810030243082583196032295188160182964",
"149661323100771570217732091394925549871",
"259706831093528235814162339650300558281"
]
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/76d92d502b30218aaf11cbbe1be180a317627bb9",
"target": {
"file": "drivers/bluetooth/hci/hci_bflb.c"
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-11893.json"