# CVE-2026-64540: usbnet: gl620a: fix out-of-bounds read in genelink_rx_fixup()

> A malicious USB device can trigger an out-of-bounds read in the Linux kernel, leaking adjacent kernel heap memory to the network stack.

- **Severity:** High 8.1 (`CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 27 Jul 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-94040, BELL-CVE-2026-64540, DEBIAN-CVE-2026-64540, GHSA-rwwq-q965-ghfj, ROOT-OS-DEBIAN-12-CVE-2026-64540, UBUNTU-CVE-2026-64540

## What is CVE-2026-64540?

CVE-2026-64540 is a high-severity vulnerability in Linux, published on 27 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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.

Weakness: CWE-125 (Out-of-bounds Read)

## Which versions are affected by CVE-2026-64540?


## How do I fix CVE-2026-64540?

Apply the vendor's patch.

## Is CVE-2026-64540 being exploited?

There is no known exploitation of CVE-2026-64540 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-64540 and fix it if it is affected.

What it is: CVE-2026-64540 is a high-severity vulnerability in Linux, published on 27 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-64540 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-64540/ (Markdown: https://insights.sbomify.com/CVE-2026-64540/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-64540
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-64540
- OSV: https://osv.dev/vulnerability/CVE-2026-64540

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-64540/
Summaries are generated and may contain mistakes; the official description above is the record.
