CVE-2026-68366

Summary

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

usb: gadget: uvc: clamp SEND_RESPONSE length to the response buffer

uvc_send_response() builds the UVC control response from a user-supplied struct uvc_request_data:

req->length = min_t(unsigned int, uvc->event_length, data->length);
...
memcpy(req->buf, data->data, req->length);

req->length is clamped to uvc->event_length, which is taken from the host control request wLength (up to UVC_MAX_REQUEST_SIZE, 64), and to data->length, which comes from the UVCIOC_SEND_RESPONSE ioctl and is only checked for being negative. The source buffer data->data is only 60 bytes, so a response with uvc->event_length and data->length both greater than 60 makes memcpy() read past the end of data->data.

Clamp req->length to sizeof(data->data) as well.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxa5eaaa1f33e771fa1651a4a7652b8a5f9fa7f6c1 < 4e116372b7a4f87df0dc0ed4b0ab5b0bb0cc5796affected
LinuxLinuxa5eaaa1f33e771fa1651a4a7652b8a5f9fa7f6c1 < 662f6c6c6ff8a6c508e1646c09cae74e28f3cca6affected
LinuxLinuxa5eaaa1f33e771fa1651a4a7652b8a5f9fa7f6c1 < 1f03658f3e9b2f8fd1d1003ba389a0390b49a350affected
LinuxLinuxa5eaaa1f33e771fa1651a4a7652b8a5f9fa7f6c1 < c8510fbbea09ef0170b56b14dc2b5890dc75be07affected
LinuxLinuxa5eaaa1f33e771fa1651a4a7652b8a5f9fa7f6c1 < b70dc75e85ba968b7b76eebfe5d63000080b875baffected
LinuxLinux3.10affected
LinuxLinux0 < 3.10unaffected
LinuxLinux6.6.148 <= 6.6.*unaffected
LinuxLinux6.12.101 <= 6.12.*unaffected
LinuxLinux6.18.42 <= 6.18.*unaffected
LinuxLinux7.1.6 <= 7.1.*unaffected
LinuxLinux7.2-rc5 <= *unaffected

Weaknesses

References