CVE-2026-97929: ALSA: usbusx2y: validate URB actual_length in interrupt callback

Published Sep 25, 2026
·
Updated

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

ALSA: usbusx2y: validate URB actuallength in interrupt callback

iusx2yin04int() processes the interrupt URB data without checking urb->actuallength. A short transfer from a malfunctioning device would cause the handler to process uninitialized heap data from the kmalloc-allocated in04buf, which is then copied to the mmap-accessible ctlsnapshot[] array.

Fix by using kzalloc() for in04buf to zero-initialize the buffer, and adding an actuallength check to skip processing on short transfers while still resubmitting the URB.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In the ALSA usbusx2y driver, allocate in04_buf with kzalloc() to zero-initialize it, and validate urb->actual_length in i_usx2y_in04_int() so short transfers are skipped before processing ctl_snapshot[] data.

Event History

Sep 25, 2026
CVE Published
via MITRE·10:22 AM
Data Sourced
via MITRE·10:22 AM
Description
Data Sourced
via NVD·11:17 AM
Description

Frequently Asked Questions

1

What conditions are required for this issue to occur?

The affected interrupt callback must receive a short USB transfer from a malfunctioning device. Without an actual_length check, the driver can process uninitialized bytes remaining in its kmalloc-allocated interrupt buffer.

2

What data could be exposed through the flaw?

Uninitialized heap data in the in04_buf buffer can be copied into the mmap-accessible ctl_snapshot[] array. This makes the issue relevant where users can access that mapped control snapshot data.

3

What should be done if a short transfer is encountered?

The corrected behavior skips processing data from short transfers while continuing to resubmit the interrupt URB. The fix also zero-initializes the interrupt buffer with kzalloc().

4

How can I determine whether a kernel includes the fix?

Check whether the kernel source contains the usbusx2y interrupt-handler change that validates urb->actual_length in i_usx2y_in04_int(), skips short transfers, and uses kzalloc() for in04_buf. The provided stable references identify commits containing the correction.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203