CVE-2024-40904
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
12/07/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages<br />
<br />
The syzbot fuzzer found that the interrupt-URB completion callback in<br />
the cdc-wdm driver was taking too long, and the driver&#39;s immediate<br />
resubmission of interrupt URBs with -EPROTO status combined with the<br />
dummy-hcd emulation to cause a CPU lockup:<br />
<br />
cdc_wdm 1-1:1.0: nonzero urb status received: -71<br />
cdc_wdm 1-1:1.0: wdm_int_callback - 0 bytes<br />
watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [syz-executor782:6625]<br />
CPU#0 Utilization every 4s during lockup:<br />
#1: 98% system, 0% softirq, 3% hardirq, 0% idle<br />
#2: 98% system, 0% softirq, 3% hardirq, 0% idle<br />
#3: 98% system, 0% softirq, 3% hardirq, 0% idle<br />
#4: 98% system, 0% softirq, 3% hardirq, 0% idle<br />
#5: 98% system, 1% softirq, 3% hardirq, 0% idle<br />
Modules linked in:<br />
irq event stamp: 73096<br />
hardirqs last enabled at (73095): [] console_emit_next_record kernel/printk/printk.c:2935 [inline]<br />
hardirqs last enabled at (73095): [] console_flush_all+0x650/0xb74 kernel/printk/printk.c:2994<br />
hardirqs last disabled at (73096): [] __el1_irq arch/arm64/kernel/entry-common.c:533 [inline]<br />
hardirqs last disabled at (73096): [] el1_interrupt+0x24/0x68 arch/arm64/kernel/entry-common.c:551<br />
softirqs last enabled at (73048): [] softirq_handle_end kernel/softirq.c:400 [inline]<br />
softirqs last enabled at (73048): [] handle_softirqs+0xa60/0xc34 kernel/softirq.c:582<br />
softirqs last disabled at (73043): [] __do_softirq+0x14/0x20 kernel/softirq.c:588<br />
CPU: 0 PID: 6625 Comm: syz-executor782 Tainted: G W 6.10.0-rc2-syzkaller-g8867bbd4a056 #0<br />
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024<br />
<br />
Testing showed that the problem did not occur if the two error<br />
messages -- the first two lines above -- were removed; apparently adding<br />
material to the kernel log takes a surprisingly large amount of time.<br />
<br />
In any case, the best approach for preventing these lockups and to<br />
avoid spamming the log with thousands of error messages per second is<br />
to ratelimit the two dev_err() calls. Therefore we replace them with<br />
dev_err_ratelimited().
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.28 (including) | 4.19.317 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.279 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.221 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.162 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.95 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.35 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.6 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/02a4c0499fc3a02e992b4c69a9809912af372d94
- https://git.kernel.org/stable/c/05b2cd6d33f700597e6f081b53c668a226a96d28
- https://git.kernel.org/stable/c/217d1f44fff560b3995a685a60aa66e55a7f0f56
- https://git.kernel.org/stable/c/22f00812862564b314784167a89f27b444f82a46
- https://git.kernel.org/stable/c/53250b54c92fe087fd4b0c48f85529efe1ebd879
- https://git.kernel.org/stable/c/72a3fe36cf9f0d030865e571f45a40f9c1e07e8a
- https://git.kernel.org/stable/c/82075aff7ffccb1e72b0ac8aa349e473624d857c
- https://git.kernel.org/stable/c/c0747d76eb05542b5d49f67069b64ef5ff732c6c
- https://git.kernel.org/stable/c/02a4c0499fc3a02e992b4c69a9809912af372d94
- https://git.kernel.org/stable/c/05b2cd6d33f700597e6f081b53c668a226a96d28
- https://git.kernel.org/stable/c/217d1f44fff560b3995a685a60aa66e55a7f0f56
- https://git.kernel.org/stable/c/22f00812862564b314784167a89f27b444f82a46
- https://git.kernel.org/stable/c/53250b54c92fe087fd4b0c48f85529efe1ebd879
- https://git.kernel.org/stable/c/72a3fe36cf9f0d030865e571f45a40f9c1e07e8a
- https://git.kernel.org/stable/c/82075aff7ffccb1e72b0ac8aa349e473624d857c
- https://git.kernel.org/stable/c/c0747d76eb05542b5d49f67069b64ef5ff732c6c
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



