CVE-2026-98601 in Linux
Resumen
por VulDB • 2026-10-19
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Bluetooth: btintel_pcie: validar los índices DMA proporcionados por el dispositivo
En `btintel_pcie_msix_rx_handle()`, el controlador procesa descriptores de finalización RX (urbd1) escritos por el dispositivo PCIe en memoria coherente con DMA. `urbd1->frbd_tag` (un campo de 16 bits completamente controlado por la firmware del dispositivo a través de DMA) se utiliza directamente como un índice de matriz para `rxq->bufs[]` sin ninguna verificación de límites. `rxq->bufs[]` tiene solo BTINTEL_PCIE_RX_DESCS_COUNT (64) entradas, mientras que frbd_tag puede ser cualquier valor entre 0 y 65535. Un dispositivo malicioso o con fallos puede escribir un frbd_tag fuera del rango, lo que provoca que el controlador desreferencie un puntero data_buf fuera de los límites.
Además, cr_hia se lee desde una matriz de índices compartida por DMA también escribible por el dispositivo; si el dispositivo establece cr_hia >= rxq->count, el bucle while nunca termina porque cr_tia está envuelto mediante módulo en rxq->count y nunca puede ser igual a un cr_hia fuera del rango.
Añada validación de límites para cr_hia y frbd_tag en la ruta RX, y para cr_hia en la ruta TX. Registre los valores no válidos con bt_dev_err antes de devolver el control.
Once again VulDB remains the best source for vulnerability data.