CVE-2025-21704CWE-787

CVE-2025-21704

High · published February 22, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
29.5
In the wild
Unconfirmed
What it is

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

usb: cdc-acm: Check control transfer buffer size before access

If the first fragment is shorter than struct usb_cdc_notification, we can't

calculate an expected_size. Log an error and discard the notification

instead of reading lengths from memory outside the received data, which can

lead to memory corruption when the expected_size decreases between

fragments, causing `expected_size - acm->nb_index` to wrap.

This issue has been present since the beginning of git history; however,

it only leads to memory corruption since commit ea2583529cd1

("cdc-acm: reassemble fragmented notifications").

A mitigating factor is that acm_ctrl_irq() can only execute after userspace

has opened /dev/ttyACM*; but if ModemManager is running, ModemManager will

do that automatically depending on the USB device's vendor/product IDs and

its other interfaces.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00368 · 29.5th percentile
Weakness
CWE-787 · Out-of-bounds Write
Published
2025-02-22T15:15Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.13, < 5.4.2915.4.291
linux/linux_kernel≥ 5.5, < 5.10.2355.10.235
linux/linux_kernel≥ 5.11, < 5.15.1795.15.179
linux/linux_kernel≥ 5.16, < 6.1.1296.1.129
linux/linux_kernel≥ 6.2, < 6.6.796.6.79
linux/linux_kernel≥ 6.7, < 6.12.166.12.16
linux/linux_kernel≥ 6.13, < 6.13.46.13.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (13)
EPSS history
Timeline
  • 22 FEB 09:43Z
    usb: cdc-acm: Check control transfer buffer size before access
    cvelistv5