Skip to main content

Linux Kernel EUVDEUVD-2026-48895

| CVE-2026-64351 MEDIUM
2026-07-25 Linux GHSA-8qc4-xrrp-xx3v
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.6 MEDIUM

Physical USB device insertion is required; the device is the attacker and needs no system-level privileges; impact is crash/DoS only.

3.1 AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
6.1 MEDIUM
AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Sep 03, 2026 - 16:26 vuln.today
CVSS changed
Sep 03, 2026 - 16:07 NVD
5.5 (MEDIUM)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:50 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 25, 2026 - 08:50 nvd
MEDIUM 5.5

DescriptionNVD

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.

AnalysisAI

Out-of-bounds read in the Linux kernel's Samsung Kalmia USB network driver allows a malicious USB device to crash the kernel via a u16 integer underflow in kalmia_rx_fixup(). When a crafted bulk-IN frame is 6-11 bytes long, the subtraction skb->len - 12 underflows to approximately 65,530, bypassing length validation and causing memcmp(), skb_trim(), and skb_pull() to operate past the end of the 14,000-byte RX buffer. No public exploit or active exploitation (CISA KEV) has been identified; EPSS at 0.23% (14th percentile) confirms minimal exploitation interest.

Technical ContextAI

The kalmia driver (drivers/net/usb/kalmia.c) handles Samsung Kalmia-based USB LTE network adapters. In kalmia_rx_fixup(), each received frame is expected to carry two 6-byte framing headers (KALMIA_HEADER_LENGTH = 6). The function computes usb_packet_length as a u16 by subtracting 12 from skb->len, but the pre-loop guard checks only that skb->len >= 6 (one header), not >= 12 (both headers). A device delivering a frame with skb->len in the range 6-11, or a short trailing remainder in a later loop iteration, causes the u16 subtraction to underflow to approximately 65,530. This inflated value bypasses the usb_packet_length < ether_packet_length truncation path. The device-supplied ether_packet_length - a little-endian u16 up to 65,535 read from header_start[2] - then steers memcmp(), skb_trim(), and skb_pull() beyond the statically sized RX buffer (hard_mtu * 10 = 14,000 bytes), resulting in an out-of-bounds read. The root cause is CWE-191 (Integer Underflow / Wrap-around) compounded by insufficient per-iteration input validation of attacker-controlled USB frame lengths. The fix enforces that both framing headers are present on every loop iteration before subtracting their combined length.

RemediationAI

Apply the relevant Linux stable kernel update: 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, or 7.1.4 depending on the deployed branch. Fix commits are available at git.kernel.org (see references). As a compensating control where immediate kernel upgrade is not feasible, blacklist the kalmia module with echo 'blacklist kalmia' > /etc/modprobe.d/kalmia-blacklist.conf && depmod -a; note this disables all Samsung Kalmia USB network adapters on the system. For environments that must retain the driver, deploy USBGuard (usbguard-daemon) with an allowlist policy to block unauthorized USB device attachment at the OS level, eliminating the physical attack surface entirely. Disabling USB network-class devices at the UEFI/firmware level is a stronger but broader control that affects all USB networking.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.208 Container suse/sl-micro/6.1/base-os-container:2.2.1-5.184 Affected
Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.218 Container suse/sl-micro/6.1/kvm-os-container:2.2.1-5.186 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.237 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.180 Affected
SUSE Linux Enterprise Real Time 15 SP7 SUSE Real Time Module 15 SP7 Fixed
SUSE Linux Micro 6.0 Fixed

Share

EUVD-2026-48895 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy