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

net: usb: catc: bound the RX packet length in catc_rx_done()

catc_rx_done() walks a multi-packet URB, reading a two-byte length from
each packet header. Its bound, pkt_len > urb->actual_length, ignores the
header offset and compares against the whole transfer rather than the
bytes left from pkt_start, so a crafted packet header makes
skb_copy_to_linear_data() read past the buffer.

A length below ETH_HLEN is also accepted, including zero, and
eth_type_trans() then reads a MAC header from the uninitialised tailroom
of a shorter skb. The is_f5u011 branch takes its length straight from
the transfer, so a zero-length URB reaches the same path.

Track the bytes remaining from the current packet, and reject a header
that does not fit, a length past what is left, and a length below an
Ethernet header.

A transfer shorter than an Ethernet header, including a zero-length one,
previously became a runt skb passed to netif_rx() and counted as
received; it is now counted in rx_length_errors and ends the walk.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Update Kernel
AI Analysis

Impact

The Linux kernel’s catc USB driver contains a flaw in the catc_rx_done function, where a two‑byte length field is read from each packet header without proper bounds checking. The check incorrectly compares the length against the entire URB length instead of the remaining bytes, allowing a crafted packet to cause skb_copy_to_linear_data to read past the buffer’s end. Packet lengths below the Ethernet header size, including zero, are also accepted, which can result in reads from uninitialised memory and the creation of a malformed network packet that may trigger a kernel crash or other undefined behaviour.

Affected Systems

All Linux kernel releases that include the unpatched catc driver are affected. No specific kernel version numbers are listed; the patch referenced by commit 21e206d indicates the issue existed prior to that commit.

Risk and Exploitability

The CVE does not have an EPSS score and is not listed in the CISA KEV catalog, suggesting no publicly known exploits. Exploitation would require an attacker-controlled USB device employing the catc interface to be connected to a host running the vulnerable kernel, and the attacker would need to send malformed packets to trigger the out‑of‑bounds read. The impact is local and leads to denial of service for the host, potentially causing a crash and loss of network services. Because the attack vector is tied to a physical USB interface and no remote control is demonstrated, the likelihood of exploitation remains low to moderate for systems with strict USB device controls.

Generated by OpenCVE AI on October 18, 2026 at 18:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel patch that fixes the catc_rx_done bounds check.
  • Disable or remove catc USB devices if they are not required and isolate hosts from unknown USB peripherals.
  • Enable monitoring of kernel logs for rx_length_errors or kernel panic events to detect attempted exploitation.

Generated by OpenCVE AI on October 18, 2026 at 18:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-288

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: usb: catc: bound the RX packet length in catc_rx_done() catc_rx_done() walks a multi-packet URB, reading a two-byte length from each packet header. Its bound, pkt_len > urb->actual_length, ignores the header offset and compares against the whole transfer rather than the bytes left from pkt_start, so a crafted packet header makes skb_copy_to_linear_data() read past the buffer. A length below ETH_HLEN is also accepted, including zero, and eth_type_trans() then reads a MAC header from the uninitialised tailroom of a shorter skb. The is_f5u011 branch takes its length straight from the transfer, so a zero-length URB reaches the same path. Track the bytes remaining from the current packet, and reject a header that does not fit, a length past what is left, and a length below an Ethernet header. A transfer shorter than an Ethernet header, including a zero-length one, previously became a runt skb passed to netif_rx() and counted as received; it is now counted in rx_length_errors and ends the walk.
Title net: usb: catc: bound the RX packet length in catc_rx_done()
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-10-18T15:19:32.790Z

Reserved: 2026-09-25T10:25:14.360Z

Link: CVE-2026-98612

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:14.030

Modified: 2026-10-18T16:17:14.030

Link: CVE-2026-98612

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T18:30:14Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-288

    Authentication Bypass Using an Alternate Path or Channel