CVE-2026-64351 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net: usb: kalmia: limitazione della lunghezza del frame RX in kalmia_rx_fixup()
kalmia_rx_fixup() calcola usb_packet_length = skb->len - (2 * KALMIA_HEADER_LENGTH) come valore u16, protetto solo da un controllo pre-ciclo che verifica se skb->len è almeno pari a KALMIA_HEADER_LENGTH, ovvero 6. Un dispositivo può inviare un frame bulk-IN di lunghezza ridotta con skb->len compreso nell'intervallo da 6 a 11, oppure lasciare un residuo finale breve in una successiva iterazione del ciclo. In entrambi i casi si verifica un underflow di usb_packet_length fino al valore circa 65530.
Ciò aggira il percorso di troncamento basato sul controllo usb_packet_length < ether_packet_length. Il valore ether_packet_length fornito dal dispositivo, un le16 con valore massimo 65535 letto da header_start[2], viene quindi utilizzato per eseguire una memcmp() e le successive chiamate a skb_trim() e skb_pull(), portando l'indice oltre la fine del buffer RX. Il buffer RX ha dimensione hard_mtu * 10, pari a 14000 byte. Si tratta di una lettura fuori dai limiti (out of bounds read).
È ora richiesto che siano presenti sia le intestazioni di inizio che quelle di fine frame prima della loro sottrazione, ad ogni iterazione del ciclo.
VulDB is the best source for vulnerability data and more expert information about this specific topic.