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

Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data()

The `ims_pcu_process_data()` processes incoming URB data byte by byte.
However, it fails to check if the `read_pos` index exceeds
IMS_PCU_BUF_SIZE.

If a malicious USB device sends a packet larger than IMS_PCU_BUF_SIZE,
`read_pos` will increment indefinitely. Moreover, since `read_pos` is
located immediately after `read_buf`, the attacker can overwrite
`read_pos` itself to arbitrarily control the index.

This manipulated `read_pos` is subsequently used in
`ims_pcu_handle_response()` to copy data into `cmd_buf`, leading to a
heap buffer overflow.

Specifically, an attacker can overwrite the `cmd_done.wait.head` located
at offset 136 relative to `cmd_buf` in the `ims_pcu_handle_response()`.
Consequently, when the driver calls `complete(&pcu->cmd_done)`, it
triggers a control flow hijack by using the manipulated pointer.

Fix this by adding a bounds check for `read_pos` before writing to
`read_buf`. If the packet is too long, discard it, log a warning,
and reset the parser state.

[dtor: factor out resetting packet state, reset checksum as well]
Published: 2026-08-04
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A heap buffer overflow occurs in the Linux kernel’s USB IMS PCU driver when the driver processes incoming USB data byte by byte in `ims_pcu_process_data()` without ensuring that the `read_pos` index remains within the fixed-size buffer. If a malicious USB device sends a packet larger than the buffer, `read_pos` increments beyond the buffer limit and can overwrite the adjacent `read_pos` variable itself, allowing an attacker to place an arbitrary value in that index. This corrupted index is later used by `ims_pcu_handle_response()` to copy data into a command buffer, leading to a heap buffer overflow that can overwrite the `cmd_done.wait.head` pointer. The overwritten pointer is then used when the driver calls `complete(&pcu->cmd_done)`, enabling a control flow hijack that can execute arbitrary code with kernel privileges.

Affected Systems

The flaw resides in the Linux kernel’s USB IMS PCU driver code, affecting all Linux operating systems that include this legacy USB PCU handling code in their kernel build. No specific kernel version numbers are supplied, so any installation that contains the unpatched `ims_pcu` driver could potentially be impacted, including all generic Linux distributions that ship the default kernel.

Risk and Exploitability

The CVSS score is not provided, and the EPSS score is currently unavailable, but the exploit requires a malicious USB device and direct physical or logical access to the target system. The vulnerability is not listed in CISA’s KEV catalog, indicating no known mass exploitation at this time. Nevertheless, the combination of a heap overflow and control‑flow hijack represents a high‑severity vulnerability that can lead to remote code execution if an attacker can supply malicious USB traffic.

Generated by OpenCVE AI on August 4, 2026 at 20:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a Linux kernel update that includes the commit fix for the IMS PCU driver (e.g., the patches referenced at the provided git links).
  • Disable the PCU subsystem or restrict USB device access using udev rules or kernel module loading options so that only trusted USB devices are allowed to communicate with the driver.
  • Enforce physical security controls to prevent the attachment of unauthorized USB devices to the system.

Generated by OpenCVE AI on August 4, 2026 at 20:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6415-1 linux security update
History

Wed, 19 Aug 2026 16:45:00 +0000


Tue, 04 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-122

Tue, 04 Aug 2026 06:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data() The `ims_pcu_process_data()` processes incoming URB data byte by byte. However, it fails to check if the `read_pos` index exceeds IMS_PCU_BUF_SIZE. If a malicious USB device sends a packet larger than IMS_PCU_BUF_SIZE, `read_pos` will increment indefinitely. Moreover, since `read_pos` is located immediately after `read_buf`, the attacker can overwrite `read_pos` itself to arbitrarily control the index. This manipulated `read_pos` is subsequently used in `ims_pcu_handle_response()` to copy data into `cmd_buf`, leading to a heap buffer overflow. Specifically, an attacker can overwrite the `cmd_done.wait.head` located at offset 136 relative to `cmd_buf` in the `ims_pcu_handle_response()`. Consequently, when the driver calls `complete(&pcu->cmd_done)`, it triggers a control flow hijack by using the manipulated pointer. Fix this by adding a bounds check for `read_pos` before writing to `read_buf`. If the packet is too long, discard it, log a warning, and reset the parser state. [dtor: factor out resetting packet state, reset checksum as well]
Title Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data()
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-08-19T16:28:39.404Z

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

Link: CVE-2026-64565

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-04T07:16:31.477

Modified: 2026-08-19T17:20:16.457

Link: CVE-2026-64565

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T20:15:12Z

Weaknesses
  • CWE-122

    Heap-based Buffer Overflow