CVE-2026-90022

Summary

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

usb: gadget: f_midi2: fix use-after-free in string attribute show path

f_midi2_opts_str_show() takes the string lock internally, but its callers dereference the opts->info.<field> pointer before calling it, outside the lock. This races with f_midi2_opts_str_store(), which frees the old string under opts->lock when the attribute is written concurrently, the show path can read a pointer that gets freed before the lock inside str_show() is even taken.

Change f_midi2_opts_str_show() to take a pointer to the string field, matching the existing pattern in f_midi2_opts_str_store(), and dereference it only after the lock is held. Update all three callers (iface_name, block name, and the EP string option macro) accordingly.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f9bdf4c4f6410a1dfafafa383a0e21069372657faffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < d11f3300b39e2daad2f0d9d66ddcc39a156cb594affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < e89e30f0b5d3004fe5955250bd8b04f3733e32ceaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 49fab5e1bdb205c36c965d0e9677bc40d282d3a2affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < fed0aa7c6eaedc6c0d4e362fc91724aa47be4a7baffected
LinuxLinux0 < 6.6.157affected
LinuxLinux0 < 6.12.110affected
LinuxLinux0 < 6.18.51affected
LinuxLinux0 < 7.2.5affected
LinuxLinux6.6.157 <= 6.6.*unaffected
LinuxLinux6.12.110 <= 6.12.*unaffected
LinuxLinux6.18.51 <= 6.18.*unaffected
LinuxLinux7.2.5 <= 7.2.*unaffected
LinuxLinux7.3-rc2 <= *unaffected

Weaknesses

References