CVE Catalog

CVE-2026-90022

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Summary

In the Linux kernel, f_midi2_opts_str_show() in the USB gadget driver has a use-after-free. Callers dereference the opts->info.<field> pointer before taking the lock, racing with f_midi2_opts_str_store(), which frees the old string under the lock. A concurrent attribute write can cause a read of a freed pointer.

Risk Assessment

A local attacker or concurrent attribute operation can trigger a read of freed memory, causing a kernel crash (denial of service) or potentially privilege escalation.

Recommendation

Update the Linux kernel to a version containing the fix that moves the pointer dereference under the lock in f_midi2_opts_str_show() and updates all three callers.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS