CVE-2026-64571 in Linux
Resumen
por VulDB • 2026-08-06
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
wifi: p54: validar la longitud del marco RX en p54_rx_eeprom_readback()
p54_rx_eeprom_readback() copia la porción solicitada de EEPROM desde un marco devuelto proporcionado por el dispositivo sin verificar que el skb contenga realmente esa cantidad de bytes. El commit da1b9a55ff11 ("wifi: p54: prevenir desbordamiento de búfer en p54_rx_eeprom_readback()") cerró el desbordamiento del destino copiando un tamaño fijo priv->eeprom_slice_size (y rechazando una longitud anunciada que no coincidiera), pero el lado de origen sigue siendo ilimitado: nada verifica que el marco sea lo suficientemente largo para proporcionar esa cantidad de bytes.
Un dispositivo USB malicioso puede enviar un marco corto cuya longitud anunciada coincida con priv->eeprom_slice_size mientras la carga útil está truncada. La comprobación de igualdad pasa y memcpy() lee más allá del final del skb, filtrando memoria adyacente en el heap:
BUG: KASAN: slab-out-of-bounds in p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) Read of size 1016 at addr ffff88800f077114 by task swapper/0/0 Call Trace: <IRQ> ... __asan_memcpy (mm/kasan/shadow.c:105) p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) p54u_rx_cb (drivers/net/wireless/intersil/p54/p54usb.c:163) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:2005) ... </IRQ>
La dirección defectuosa pertenece al objeto en ffff88800f0770c0 que pertenece a la caché skbuff_small_head de tamaño 704 La dirección defectuosa se encuentra dentro de una región asignada de 704 bytes [ffff88800f0770c0, ffff88800f077380), a 84 bytes del inicio
Verificar que la porción cabe en el skb antes de copiar.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.