UBUNTU-CVE-2026-93122: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: uac: validate rate list length before storing UAC1 and UAC2 configfs rate-list attributes parse a comma-separated list of sampling rates and store each parsed value in fixed-size arrays. The arrays have UACMAXRATES entries, but the store paths do not check that the input contains at most that many tokens before writing through opts->name##s[i++]. Writing more than ten rates therefore writes past the end of the psrates[] or csrates[] array in struct fuac1opts or struct fuac2opts. With CONFIGUBSANBOUNDS enabled, writing an 11-entry rate list to the UAC1 psrate attribute reports: UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/fuac1.c:1669:1 index 10 is out of range for type 'int [10]' ubsanhandleoutofbounds.cold fuac1optspsratestore configfswriteiter vfswrite ksyswrite dosyscall64 The same reproducer against the UAC2 psrate attribute reports: UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/fuac2.c:2087:1 index 10 is out of range for type 'int [10]' ubsanhandleoutofbounds.cold fuac2optspsratestore configfswriteiter vfswrite ksyswrite dosyscall64 Reject additional tokens once UACMAXRATES entries have been parsed. Also keep the original kstrdup() pointer for kfree(), because strsep() advances the parsing cursor. Freeing the advanced cursor leaks the original buffer on successful parses and can free an interior pointer on some error paths.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In the UAC1 and UAC2 configfs rate-list store paths, reject additional sampling-rate tokens once UAC_MAX_RATES entries have been parsed, preventing writes past the p_srates[] or c_srates[] arrays.
- Operational
Retain the original pointer returned by kstrdup() and pass that original pointer to kfree(); use a separate parsing cursor because strsep() advances the cursor.