CVE-2026-89733

Summary

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

usb: gadget: uvc: fix dangling pointers in uvc_function_bind() and uvc_function_unbind()

In uvc_function_bind() error path, we use usb_ep_free_request which uses uvc->control_req but does not set it to NULL afterwards. Thus, uvc->control_req is a dangling pointer causing a UAF. Also we do not set the uvc->control_buf pointer to NULL after freeing it, which is another dangling pointer. Fix it by setting uvc->control_req to NULL after we run usb_ep_free_request() and uvc->control_buf to NULL after kfree. Do the same for uvc_function_unbind().

Affected Software

VendorProductVersion RangeStatus
LinuxLinux0f9df939385527049c8062a099fbfa1479fe7ce0 < 8e88ed8a374de67270d38689f2a81018909cafbbaffected
LinuxLinux0f9df939385527049c8062a099fbfa1479fe7ce0 < 9897b7da8c0ad8356c1b8649379fcb5a689462cbaffected
LinuxLinux0f9df939385527049c8062a099fbfa1479fe7ce0 < 38f822ddce9355893d734279a26ddec45182197eaffected
LinuxLinux0f9df939385527049c8062a099fbfa1479fe7ce0 < bdab5605259ba5d6ff927c1a85cc83eb3ecfdaccaffected
LinuxLinux1efa8a5aac93d9e67075995d7d4902b57ce184f7affected
LinuxLinuxe7a4b0efe62e56a0acc81d16091c6efc2a282be8affected
LinuxLinux065f5561a20659cf17aae5f72b32b5c2695c8e00affected
LinuxLinux3.2.36 < 3.3affected
LinuxLinux3.4.25 < 3.5affected
LinuxLinux3.7.2 < 3.8affected
LinuxLinux3.8affected
LinuxLinux0 < 3.8unaffected
LinuxLinux6.12.109 <= 6.12.*unaffected
LinuxLinux6.18.50 <= 6.18.*unaffected
LinuxLinux7.2.4 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References