CVE-2026-64351

CVE-2026-64351

Medium · published July 25, 2026

CVSS v3.1
5.5
EPSS
0%
Percentile
2.4
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()

kalmia_rx_fixup() computes usb_packet_length = skb->len - (2 *

KALMIA_HEADER_LENGTH) as a u16, guarded only by a pre-loop check that

skb->len is at least KALMIA_HEADER_LENGTH, which is 6. A device can

deliver a short bulk-IN frame with skb->len in the 6 to 11 range, or

leave a short trailing remainder on a later loop iteration. Either case

underflows usb_packet_length to about 65530.

That bypasses the usb_packet_length < ether_packet_length truncation path.

The device-supplied ether_packet_length, a le16 up to 65535 read from

header_start[2], then drives a memcmp() and the following skb_trim() and

skb_pull() past the end of the rx buffer. The rx buffer is hard_mtu * 10,

which is 14000 bytes. That is an out of bounds read.

Require both the start and end framing headers to be present before

subtracting them, on every loop iteration.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00130 · 2.4th percentile
Published
2026-07-25T14:17Z
Affected products (12)
ProductVersionsFixed in
linux/linux_kernel≥ 3.0.1, < 5.10.2615.10.261
linux/linux_kernel≥ 5.11, < 5.15.2125.15.212
linux/linux_kernel≥ 5.16, < 6.1.1786.1.178
linux/linux_kernel≥ 6.2, < 6.6.1456.6.145
linux/linux_kernel≥ 6.7, < 6.12.966.12.96
linux/linux_kernel≥ 6.13, < 6.18.396.18.39
linux/linux_kernel≥ 6.19, < 7.1.47.1.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 25 JUL 08:50Z
    net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
    cvelistv5