CVE-2024-36895
Severity CVSS v4.0:
Pending analysis
Type:
CWE-787
Out-of-bounds Write
Publication date:
30/05/2024
Last modified:
18/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
usb: gadget: uvc: use correct buffer size when parsing configfs lists<br />
<br />
This commit fixes uvc gadget support on 32-bit platforms.<br />
<br />
Commit 0df28607c5cb ("usb: gadget: uvc: Generalise helper functions for<br />
reuse") introduced a helper function __uvcg_iter_item_entries() to aid<br />
with parsing lists of items on configfs attributes stores. This function<br />
is a generalization of another very similar function, which used a<br />
stack-allocated temporary buffer of fixed size for each item in the list<br />
and used the sizeof() operator to check for potential buffer overruns.<br />
The new function was changed to allocate the now variably sized temp<br />
buffer on heap, but wasn&#39;t properly updated to also check for max buffer<br />
size using the computed size instead of sizeof() operator.<br />
<br />
As a result, the maximum item size was 7 (plus null terminator) on<br />
64-bit platforms, and 3 on 32-bit ones. While 7 is accidentally just<br />
barely enough, 3 is definitely too small for some of UVC configfs<br />
attributes. For example, dwFrameInteval, specified in 100ns units,<br />
usually has 6-digit item values, e.g. 166666 for 60fps.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.3 (including) | 6.6.31 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.8.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:* |
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/650ae71c80749fc7cb8858c8049f532eaec64410
- https://git.kernel.org/stable/c/7a54e5052bde582fd0e7677334fe7a5be92e242c
- https://git.kernel.org/stable/c/a422089ce42ced73713e5032aad29a9a7cbe9528
- https://git.kernel.org/stable/c/650ae71c80749fc7cb8858c8049f532eaec64410
- https://git.kernel.org/stable/c/7a54e5052bde582fd0e7677334fe7a5be92e242c
- https://git.kernel.org/stable/c/a422089ce42ced73713e5032aad29a9a7cbe9528



