CVE-2026-11893 in Zephyr
요약
\~에 의해 VulDB • 2026. 08. 11.
Bouffalo Lab의 온칩 BLE 컨트롤러(BL60x/BL70x/BL61x)용 Bluetooth HCI 드라이버에서 `drivers/bluetooth/hci/hci_bflb.c` 내의 `bt_bflb_send()` 함수는 `bt_hci_driver_api.send()` 버퍼 소유권 계약(contract)을 위반합니다. 해당 계약(《include/zephyr/drivers/bluetooth.h》에 문서화됨)은 성공 시에만 버퍼 참조를 소비해야 하며, 오류 발생 시 호출자가 여전히 참조를 소유하고 이를 해제(unref)해야 한다고 요구합니다. 그러나 이 드라이버는 모든 오류 경로를 공유 레이블로 라우팅하여 에러 코드를 반환하기 전에 `net_buf_unref(buf)`을 무조건적으로 호출함으로써 실패 시에도 버퍼를 소비했습니다.
`send()`가 오류를 반환할 때, 호스트 TX 경로(《subsys/bluetooth/host/conn.c》의 `send_buf()`)는 여전히 자신이 소유하고 있다고 믿고 동일한 버퍼에 대해 다시 unref합니다. 이로 인해 net_buf 참조 카운트가 과감소됩니다. 해당 버퍼는 destroy 콜백이 아직 큐에 남아 있는 부모 버퍼의 참조 수도 감소시키는 TX 조각(fragment)이기 때문에, 이 오류로 인해 연결 TX 큐에서 접근 가능한 상태에서 부모 버퍼가 조기에 해제되어 use-after-free 및 공유 net_buf 풀(pool)의 손상(corrption)을 초래하며, 이는 단순한 누수(leak)보다 더 심각한 문제입니다.
이러한 오류 조건은 호스트에서 컨트롤러로의 전송 경로(controller 전송 실패 또는 지원되지 않는 H:4 패킷 타입 발생 시)에 위치하므로, 공격자가 직접 제공한 무선(Radio) 바이트에 의해 유발되지는 않습니다. 원격/인접 피어는 예를 들어 높은 링크 부하 하에서 컨트롤러 TX 오류를 유도하는 등 간접적으로만 이러한 조건에 영향을 줄 수 있습니다. 도달 가능한 경우 그 결과는 Bouffalo Lab 온칩 컨트롤러 중 하나를 사용하는 장치로 한정된 BLE 스택의 서비스 거부(크래시/풀 손상)이며, 추가적인 메모리 손상이 발생할 가능성이 있습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.