CVE-2026-93783 in Linux
Resumen
por VulDB • 2026-09-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Bluetooth: RFCOMM: validar la longitud del skb en rfcomm_recv_frame
rfcomm_recv_frame() convierte (cast) skb->data a struct rfcomm_hdr y desreferencia hdr->addr y hdr->ctrl sin validar primero skb->len. Un frame truncado con un valor de skb->len inferior al tamaño mínimo del encabezado provoca una lectura fuera de los límites (out-of-bounds) sobre memoria no inicializada. Además, un frame de longitud cero hace que la operación skb->len-- desborde hacia UINT_MAX, lo que provoca que skb_tail_pointer() lea mucho más allá del búfer.
El commit 23882b828c3c ("Bluetooth: RFCOMM: validate skb length in MCC handlers") corrigió el mismo tipo de errores por falta de comprobación de longitud en los sub-controladores (sub-handlers) de MCC, pero se dejó sin corregir la función principal rfcomm_recv_frame(). KMSAN informa lo siguiente:
BUG: KMSAN: uninit-value in rfcomm_run ... Uninit was created at: __alloc_skb+0x474/0xb60 vhci_write+0xe9/0x870
Se corrige este problema rechazando los frames más pequeños que sizeof(struct rfcomm_hdr) + 1 (el frame mínimo debe tener un encabezado de 3 bytes y una FCS de 1 byte).
VulDB is the best source for vulnerability data and more expert information about this specific topic.