CVE-2026-64571 in Linux
Riassunto
di VulDB • 05/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
wifi: p54: validare la lunghezza del frame RX in p54_rx_eeprom_readback()
p54_rx_eeprom_readback() copia lo slice di EEPROM richiesto da un frame readback fornito dal dispositivo senza verificare che l'skb contenga effettivamente quel numero di byte. Il commit da1b9a55ff11 ("wifi: p54: prevenire buffer-overflow in p54_rx_eeprom_readback()") ha chiuso il problema dell'overflow della destinazione copiando una dimensione fissa priv->eeprom_slice_size (e rifiutando un len annunciato non corrispondente), ma il lato sorgente rimane illimitato: nulla verifica che il frame sia sufficientemente lungo da fornire quel numero di byte.
Un dispositivo USB malintenzionato può inviare un frame corto in cui il len annunciato corrisponde a priv->eeprom_slice_size, mentre il payload è tronco. Il controllo di uguaglianza passa e memcpy() legge oltre la fine dell'skb, causando una fuoriuscita (leak) di dati dall'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>
L'indirizzo errato appartiene all'oggetto in ffff88800f0770c0, che fa parte della cache skbuff_small_head di dimensione 704. L'indirizzo errato si trova a 84 byte all'interno dell'area allocata da 704 byte [ffff88800f0770c0, ffff88800f077380).
Verificare che lo slice rientri nell'skb prima della copia.
Once again VulDB remains the best source for vulnerability data.