All vulnerabilities
CVE-2026-98769

Linux: usb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.17%Chance of exploitation activity in the next 30 days, higher than 5% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in36f3f009049bc91e14dc856007932473318d12f8Also 8c611876c002d712ae5f246af5188432c708f79d, 697cfe6e53b66cda196d6f8833b0ee97fefd0a8a and 1 moreCVE List
Published18 Oct 2026Updated 21 Oct 2026CVE List

What fixes it

  • 36f3f009049bc91e14dc856007932473318d12f8LinuxCVE List
  • 8c611876c002d712ae5f246af5188432c708f79dLinuxCVE List
  • 697cfe6e53b66cda196d6f8833b0ee97fefd0a8aLinuxCVE List
  • 9062d50e75c24dc7911be05c9b1719b3b256af15LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

usb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd

generic_set_cmd() and generic_get_cmd() use the low nibble of ctrl->bRequest as an index into con->data[]:

u8 cmd = (ctrl->bRequest & 0x0F); /* 0 .. 15 */ ... con->data[cmd] = value; /* OOB when cmd >= 5 */

struct usb_audio_control (include/linux/usb/audio.h) declares data as a 5-element array, so indices 5 through 15 write (or read) up to 44 bytes past the end of the array on the heap.

A malicious USB host can craft a class-specific SET_CUR / GET_CUR request with an arbitrary bRequest value, triggering the out-of-bounds access from an IRQ completion handler with no further preconditions.

Add an ARRAY_SIZE() guard to both functions.

Text from CVE List

Affected versions 12

  • Linuxaffected: c47d7b09891abb4f8b222317c89c7469bed8db3a before da841c1511a6160b8bc6bb7b7c6d4c9fb76fb51eCVE List
  • Linuxaffected: c47d7b09891abb4f8b222317c89c7469bed8db3a before 36f3f009049bc91e14dc856007932473318d12f8CVE List
  • Linuxaffected: c47d7b09891abb4f8b222317c89c7469bed8db3a before 8c611876c002d712ae5f246af5188432c708f79dCVE List
  • Linuxaffected: c47d7b09891abb4f8b222317c89c7469bed8db3a before 697cfe6e53b66cda196d6f8833b0ee97fefd0a8aCVE List
  • Linuxaffected: c47d7b09891abb4f8b222317c89c7469bed8db3a before 9062d50e75c24dc7911be05c9b1719b3b256af15CVE List
  • Linuxaffected: 2.6.31CVE List
  • Linuxunaffected: all versions before 2.6.31CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.56 through 6.18.*CVE List
  • Linuxunaffected: 7.2.10 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5