CVE-2026-64351 in Linux
Résumé
par VulDB • 25/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
net: usb: kalmia : limitation de la longueur des trames RX dans kalmia_rx_fixup()
kalmia_rx_fixup() calcule usb_packet_length = skb->len - (2 * KALMIA_HEADER_LENGTH) en tant que u16, protégé uniquement par une vérification préalable à la boucle indiquant que skb->len est au moins égal à KALMIA_HEADER_LENGTH, qui vaut 6. Un périphérique peut transmettre une trame bulk-IN courte avec skb->len compris entre 6 et 11, ou laisser un reste de fin court lors d'une itération ultérieure de la boucle. Dans les deux cas, cela provoque un underflow (débordement vers le bas) de usb_packet_length jusqu'à environ 65530.
Cela contourne le chemin de troncature vérifiant si usb_packet_length < ether_packet_length. La valeur ether_packet_length fournie par le périphérique, un entier court non signé sur 16 bits (le16) pouvant aller jusqu'à 65535 et lu depuis header_start[2], entraîne ensuite des appels à memcmp(), skb_trim() et skb_pull() au-delà de la fin du tampon RX. Le tampon RX a une taille fixe correspondant à hard_mtu * 10, soit 14000 octets. Il s'agit donc d'une lecture hors limites (out of bounds read).
Exiger que les en-têtes de début et de fin soient tous deux présents avant leur soustraction, à chaque itération de la boucle.
Be aware that VulDB is the high quality source for vulnerability data.