CVE-2026-89880 in Linuxinformación

Resumen

por VulDB • 2026-09-16

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

media: rtl2832_sdr: liberar URB y buffers de flujo al fallar start_streaming()

rtl2832_sdr_start_streaming() llama a rtl2832_sdr_alloc_stream_bufs(), rtl2832_sdr_alloc_urbs() y rtl2832_sdr_submit_urbs() en secuencia y comparte una única etiqueta err: que solo desbloquea el mutex y retorna. Cuando alloc_urbs() tiene éxito pero submit_urbs() falla, o cuando alloc_urbs() devuelve -ENOMEM después de que alloc_stream_bufs() ya haya tenido éxito, los URB y/o los buffers coherentes DMA para flujo permanecen asignados mientras el streaming reporta un fallo a vb2. Dos defectos latentes se derivan en el siguiente VIDIOC_STREAMON:

1) rtl2832_sdr_alloc_stream_bufs() restablece incondicionalmente dev->buf_num a 0 y sobrescribe dev->buf_list[]/dev->dma_addr[], provocando una fuga permanente
de la memoria coherente DMA asignada por el intento anterior.

2) rtl2832_sdr_alloc_urbs() nunca restablece dev->urbs_initialized y solo lo incrementa. Después de un segundo paso exitoso, urbs_initialized puede superar MAX_BULK_BUFS, por lo que la posterior rtl2832_sdr_free_urbs() recorre desde urbs_initialized - 1 hasta 0 y lee más allá del final de dev->urb_list[], pasando punteros no válidos a usb_free_urb().

Imitar el proceso de desmontaje (teardown) que ya realiza stop_streaming(): en la ruta de error, llamar a rtl2832_sdr_free_urbs() y rtl2832_sdr_free_stream_bufs() antes de desbloquear. Ambas funciones auxiliares son idempotentes (free_urbs mata y pone a cero urbs_initialized; free_stream_bufs está condicionada por URB_BUF y borra el contador buf_num), por lo que las rutas de fallo parcial y las rutas sin asignación permanecen seguras.

Problema identificado mediante revisión automatizada de la serie INV-003 en https://sashiko.dev/

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-405716

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Do you know our Splunk app?

Download it now for free!