CVE-2024-35825
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
17/05/2024
Last modified:
17/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
usb: gadget: ncm: Fix handling of zero block length packets<br />
<br />
While connecting to a Linux host with CDC_NCM_NTB_DEF_SIZE_TX<br />
set to 65536, it has been observed that we receive short packets,<br />
which come at interval of 5-10 seconds sometimes and have block<br />
length zero but still contain 1-2 valid datagrams present.<br />
<br />
According to the NCM spec:<br />
<br />
"If wBlockLength = 0x0000, the block is terminated by a<br />
short packet. In this case, the USB transfer must still<br />
be shorter than dwNtbInMaxSize or dwNtbOutMaxSize. If<br />
exactly dwNtbInMaxSize or dwNtbOutMaxSize bytes are sent,<br />
and the size is a multiple of wMaxPacketSize for the<br />
given pipe, then no ZLP shall be sent.<br />
<br />
wBlockLength= 0x0000 must be used with extreme care, because<br />
of the possibility that the host and device may get out of<br />
sync, and because of test issues.<br />
<br />
wBlockLength = 0x0000 allows the sender to reduce latency by<br />
starting to send a very large NTB, and then shortening it when<br />
the sender discovers that there’s not sufficient data to justify<br />
sending a large NTB"<br />
<br />
However, there is a potential issue with the current implementation,<br />
as it checks for the occurrence of multiple NTBs in a single<br />
giveback by verifying if the leftover bytes to be processed is zero<br />
or not. If the block length reads zero, we would process the same<br />
NTB infintely because the leftover bytes is never zero and it leads<br />
to a crash. Fix this by bailing out if block length reads zero.
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:*:*:*:*:*:*:*:* | 4.14.328 (including) | 4.15 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.297 (including) | 4.19.312 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.4.259 (including) | 5.4.274 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.199 (including) | 5.10.215 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.136 (including) | 5.15.154 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.59 (including) | 6.1.84 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.5.8 (including) | 6.6 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.1 (including) | 6.6.24 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.6:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.6:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.8: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/6b2c73111a252263807b7598682663dc33aa4b4c
- https://git.kernel.org/stable/c/7664ee8bd80309b90d53488b619764f0a057f2b7
- https://git.kernel.org/stable/c/92b051b87658df7649ffcdef522593f21a2b296b
- https://git.kernel.org/stable/c/a0f77b5d6067285b8eca0ee3bd1e448a6258026f
- https://git.kernel.org/stable/c/a766761d206e7c36d7526e0ae749949d17ca582c
- https://git.kernel.org/stable/c/e2dbfea520e60d58e0c498ba41bde10452257779
- https://git.kernel.org/stable/c/ef846cdbd100f7f9dc045e8bcd7fe4b3a3713c03
- https://git.kernel.org/stable/c/f90ce1e04cbcc76639d6cba0fdbd820cd80b3c70
- https://git.kernel.org/stable/c/6b2c73111a252263807b7598682663dc33aa4b4c
- https://git.kernel.org/stable/c/7664ee8bd80309b90d53488b619764f0a057f2b7
- https://git.kernel.org/stable/c/92b051b87658df7649ffcdef522593f21a2b296b
- https://git.kernel.org/stable/c/a0f77b5d6067285b8eca0ee3bd1e448a6258026f
- https://git.kernel.org/stable/c/a766761d206e7c36d7526e0ae749949d17ca582c
- https://git.kernel.org/stable/c/e2dbfea520e60d58e0c498ba41bde10452257779
- https://git.kernel.org/stable/c/ef846cdbd100f7f9dc045e8bcd7fe4b3a3713c03
- https://git.kernel.org/stable/c/f90ce1e04cbcc76639d6cba0fdbd820cd80b3c70
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html



