CVE-2026-19739 in Zephyrinfo

Zusammenfassung

von VulDB • 11.10.2026

Der Code für die Link-Layer-Steuerprozedur von Bluetooth in subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c behält den empfangenen RX-Knoten (RX node) bei, während ein Connection Update-/Connection Parameter-Vorgang auf dessen Instant wartet. Dadurch kann der Knoten später die Host-Benachrichtigung tragen (llcp_rx_node_retain(), das ihn als NODE_RX_TYPE_RETAIN markiert und dadurch das normale Recycling in ull.c unterdrückt). Der Standardfall: arm von llcp_rp_cu_rx() und llcp_lp_cu_rx() — der Pfad „ungültiges PDU, Verbindung beenden“ — beendet den Vorgang, ohne diesen behaltenen Knoten freizugeben. llcp_rr_check_done() dequed dann den Prozedurkontext und gibt ihn frei, wobei ctx->node_ref.rx weiterhin auf den gehaltenen Knoten zeigt, wodurch die letzte Referenz darauf verloren geht.

Ein Peer-Gerät im Funkbereich kann dies erreichen, ohne Pairing, Bonding oder Verschlüsselung. Gegen ein Peripheriegerät sendet der Peer eine wohlgeformte LL_CONNECTION_UPDATE_IND mit einer Instant einige Verbindungsevents in der Zukunft (der Knoten wird beibehalten und die Prozedur wechselt in RP_CU_STATE_WAIT_INSTANT), und dann, bevor das Instant erreicht ist, jedes andere LL Control PDU wie z. B. LL_LENGTH_REQ. ull_cp_rx() leitet dieses PDU in den aktiven Remote-Connection-Update-Vorgang weiter, der den Pfad für ungültige PDUs einschlägt. Die Central-Rolle ist symmetrisch nach Akzeptieren einer LL_CONNECTION_PARAM_REQ erreichbar, und die lokale Prozedurvariante ist mit LL_REJECT_IND erreichbar.

Mit aktiviertem CONFIG_BT_CTLR_ASSERT_DEBUG (Standardwert) verletzt der resultierende Zustand die in llcp_rr_check_done() behauptete Invariante, sodass die Zwei-PDU-Sequenz einen sofortigen fatalen Fehler im Controller verursacht. Bei deaktivierten Assertions geht bei jedem Auftreten dauerhaft ein Knoten aus dem kleinen festen RX-Pool des Controllers verloren (Größe basierend auf CONFIG_BT_CTLR_RX_BUFFERS, Standardwert 1). Wird die Sequenz über mehrere Verbindungsneuaufbauten hinweg wiederholt, wird der Pool erschöpft, woraufhin der Link-Layer-Empfangspfad mit einem NULL-Knoten arbeitet. Die Auswirkung ist ein nicht authentifizierter, remote auslösbarer Denial-of-Service-Angriff, der bis zum Neustart anhält; es gibt keine Folgen durch Memory-Disclosure oder Memory-Corruption, da der geleakte Knoten einfach unerreichbar wird.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Zuständig

Zephyr

Reservieren

13.08.2026

Veröffentlichung

11.10.2026

Moderieren

akzeptiert

Eintrag

VDB-416741

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Do you know our Splunk app?

Download it now for free!