Description
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.
Published: 2026-07-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel the kalmia_rx_fixup() function incorrectly calculates the USB packet length for Kalmia USB Ethernet adapters. The calculation treats a subtraction as an unsigned 16‑bit integer, and if the received bulk‑IN frame is only marginally larger than the 6‑byte header, the result underflows to a value around 65530. This underflow bypasses the normal truncation check that limits packet processing to the Ethernet length specified by the device. As a result, memcmp(), skb_trim() and skb_pull() operations can read beyond the end of the receive buffer, which is sized at 14 000 bytes. The out‑of‑bounds read can corrupt kernel memory and cause a kernel panic, leading to a denial of service. The flaw does not grant direct code execution but can destabilise the kernel instance handling the USB device. The vulnerability is triggered by a malicious USB device that supplies frames shorter than expected, making physical or USB proximity the primary attack vector.

Affected Systems

The vulnerability affects Linux kernels that include the Kalmia USB Ethernet driver. It applies to all distributions that ship the driver, regardless of the specific kernel version. All kernel releases containing the unpatched kalmia_rx_fixup() function are therefore vulnerable.

Risk and Exploitability

The CVSS score is 5.5. The EPSS score of <1 % indicates a very low probability of widespread exploitation. The CVE is not listed in the CISA KEV catalog. Attackers would need to supply a specially crafted USB device with short bulk‑IN frames, meaning the attack is local and requires physical or USB proximity.

Generated by OpenCVE AI on August 4, 2026 at 14:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the kalmia_rx_fixup bounds‑check patch.
  • Rebuild the kernel applying the patch if a distribution update is unavailable.
  • Restrict or disable the Kalmia USB Ethernet devices if immediate patching cannot be performed.

Generated by OpenCVE AI on August 4, 2026 at 14:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4717-1 linux security update
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
History

Thu, 30 Jul 2026 04:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
CWE-789

Tue, 28 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 27 Jul 2026 06:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
CWE-789

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description 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.
Title net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-25T08:50:10.882Z

Reserved: 2026-07-19T15:36:31.782Z

Link: CVE-2026-64351

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-07-25T10:17:17.407

Modified: 2026-08-11T15:00:57.447

Link: CVE-2026-64351

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64351 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T14:45:03Z

Weaknesses