Skip to main content

Linux Kernel EUVDEUVD-2026-49591

| CVE-2026-64540 HIGH
2026-07-27 Linux GHSA-rwwq-q965-ghfj
8.1
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.1 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
vuln.today AI
6.1 MEDIUM

Attack originates from an attacker-controlled USB device physically connected, so AV:P; no auth needed once the interface is up (PR:N), an OOB read leaks heap (C:H) and can crash (A:H) with no write (I:N).

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Jul 30, 2026 - 06:47 vuln.today
CVSS changed
Jul 30, 2026 - 06:37 NVD
8.1 (HIGH)
Patch available
Jul 27, 2026 - 21:17 EUVD
CVE Published
Jul 27, 2026 - 20:10 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 27, 2026 - 20:10 cve.org
HIGH 8.1

DescriptionCVE.org

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

usbnet: gl620a: fix out-of-bounds read in genelink_rx_fixup()

genelink_rx_fixup() splits an aggregated RX frame into its individual packets, using a per-packet length taken from device-supplied data. That length is only bounded by GL_MAX_PACKET_LEN (1514); it is never compared against how many bytes were actually received.

A malicious GeneLink (GL620A) device can therefore send a short URB whose header claims packet_count > 1 and a first packet of up to 1514 bytes.

skb_put_data(gl_skb, packet->packet_data, size);

then copies past the end of the receive buffer and hands the adjacent slab contents up the network stack, an out-of-bounds read that leaks kernel heap. No privilege is required: the path runs in the usbnet RX softirq as soon as the interface is up.

BUG: KASAN: slab-out-of-bounds in genelink_rx_fixup (drivers/net/usb/gl620a.c:112) Read of size 1514 at addr ffff888011309708 by task ksoftirqd/0/14 Call Trace: ... __asan_memcpy (mm/kasan/shadow.c:105) genelink_rx_fixup (include/linux/skbuff.h:2814 drivers/net/usb/gl620a.c:112) usbnet_bh (drivers/net/usb/usbnet.c:572 drivers/net/usb/usbnet.c:1589) process_one_work (kernel/workqueue.c:3322) bh_worker (kernel/workqueue.c:3405) tasklet_action (kernel/softirq.c:965) handle_softirqs (kernel/softirq.c:622) run_ksoftirqd (kernel/softirq.c:1076) ...

skb_pull() already verifies that the requested length fits the buffer and returns NULL otherwise. Move it ahead of the copy and check its result, so a packet that overruns the received data is rejected before it is read. Well-formed frames, whose packets are fully present, are unaffected.

AnalysisAI

Out-of-bounds kernel heap read in the Linux kernel's usbnet gl620a driver allows a malicious GeneLink (GL620A) USB link-cable device to leak adjacent slab memory into the network stack. The flaw is in genelink_rx_fixup(), which trusts a device-supplied per-packet length (bounded only by GL_MAX_PACKET_LEN of 1514 bytes) without checking it against the number of bytes actually received in the URB. Rated CVSS 8.1, it is unauthenticated (PR:N) and needs no user login, but no public exploit identified at time of analysis and EPSS is low at 0.18% (7th percentile).

Technical ContextAI

The affected code is drivers/net/usb/gl620a.c, the usbnet mini-driver for GeneLink GL620A USB-to-USB host-to-host bridge cables. On receive, genelink_rx_fixup() de-aggregates a single URB containing multiple packets by reading a header-declared packet_count and per-packet length, then calling skb_put_data(gl_skb, packet->packet_data, size). Because size is validated only against GL_MAX_PACKET_LEN and never against the actual received buffer length, a short URB claiming packet_count > 1 forces a memcpy that reads past the end of the receive skb. The root cause is a classic CWE-125 out-of-bounds read (the input tags it 'Buffer Overflow', but the KASAN trace and description confirm it is a slab-out-of-bounds read, not a write); the upstream fix moves skb_pull() - which already bounds-checks the requested length and returns NULL on overrun - ahead of the copy so malformed frames are rejected before being read.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, or 7.1.5 (mainline 7.2-rc2), whichever matches your branch, via the commits at https://git.kernel.org/stable/c/255d03551f94c7bdd86c7d9181a70b21917d829f and the sibling stable references. Where immediate patching is not possible, the practical compensating control is to prevent the vulnerable driver from ever binding: blacklist the gl620a module (e.g. an /etc/modprobe.d entry with 'blacklist gl620a' and 'install gl620a /bin/true') on systems that do not legitimately use GeneLink GL620A USB link cables - the side effect is that any genuine GL620A cable will stop working, which is acceptable for the overwhelming majority of deployments that never use this niche hardware. As defense in depth against hostile USB devices generally, enforce USB device authorization / port control (USBGuard or kernel authorized_default=0) so unknown devices cannot instantiate the interface; the trade-off is added administrative overhead for legitimate USB peripherals.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

EUVD-2026-49591 vulnerability details – vuln.today

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