CVE-2026-31720 PUBLISHED

usb: gadget: f_uac1_legacy: validate control request size

Assigner: Linux
Reserved: 09.03.2026 Published: 01.05.2026 Updated: 02.05.2026

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

usb: gadget: f_uac1_legacy: validate control request size

f_audio_complete() copies req->length bytes into a 4-byte stack variable:

u32 data = 0; memcpy(&data, req->buf, req->length);

req->length is derived from the host-controlled USB request path, which can lead to a stack out-of-bounds write.

Validate req->actual against the expected payload size for the supported control selectors and decode only the expected amount of data.

This avoids copying a host-influenced length into a fixed-size stack object.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 557d1d4e862eccd0b74cc377b66de3e1e8d49605 (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 21b11e8581285c6f10ef43d05df349d445f24273 (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 0d41772d98dcaf6c17e875b7d0ea0154ae1191ee (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to c6da4fed7537aec19880c24f6c3a95065adb1406 (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to be2d32f0c3fe333d14c0a9ca90328dacbc3e06b8 (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 8e5eb1d6e6a3d7bbea9c92132d0cda5793176426 (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 26304d124e7f0383f8fe1168b5801a0ac7e16b1c (excl.)
  • affected from c6994e6f067cf0fc4c6cca3d164018b1150916f8 to 6e0e34d85cd46ceb37d16054e97a373a32770f6c (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.31 is affected
  • unaffected from 0 to 2.6.31 (excl.)
  • unaffected from 5.10.253 to 5.10.* (incl.)
  • unaffected from 5.15.203 to 5.15.* (incl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.134 to 6.6.* (incl.)
  • unaffected from 6.12.81 to 6.12.* (incl.)
  • unaffected from 6.18.22 to 6.18.* (incl.)
  • unaffected from 6.19.12 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References