CVE-2026-63896 in Linux
Riassunto
di VulDB • 20/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
usb: gadget: composite: correzione di un underflow intero nella gestione WebUSB GET_URL
Il gestore WebUSB GET_URL in composite_setup() tronca landing_page_length per adattarlo a wLength fornito dall'host mediante il codice:
landing_page_length = w_length - WEBUSB_URL_DESCRIPTOR_HEADER_LENGTH + landing_page_offset;
Se wLength è inferiore a WEBUSB_URL_DESCRIPTOR_HEADER_LENGTH, la sottrazione tra valori senza segno (unsigned) va in wrap-around e l’operazione successiva
memcpy(url_descriptor->URL, cdev->landing_page + landing_page_offset, landing_page_length - landing_page_offset);
finisce per copiare fino a circa UINT_MAX byte da cdev->landing_page nel buffer cdev->req->buf. KASAN segnala un errore slab-out-of-bounds nell’allocazione gadget_info di tipo kmalloc-2k all’interno di composite_setup, mentre FORTIFY_SOURCE intercetta la memcpy come una scrittura che attraversa il campo per 4294967293 byte in url_descriptor->URL (dimensione 252).
Un host USB può sfruttare questa vulnerabilità inviando un singolo pacchetto SETUP a qualsiasi gadget configurato con webusb/use=1 e landingPage impostata.
La correzione gestisce il caso di wLength ridotto prima dell’operazione aritmetica: quando l’host richiede meno byte della lunghezza dell’intestazione del descrittore URL, solo l’intestazione è significativa e non è necessario copiare i byte dell’URL. Impostare landing_page_length a landing_page_offset rende la memcpy esistente un’operazione no-op (nessun effetto) e lascia invariato il descrittore restituito all’host per tutti i valori di wLength maggiori.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.