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

ALSA: usb-audio: qcom: reject stream disable with no active interface

handle_uaudio_stream_req() resolves an interface index with
info_idx_from_ifnum(), which returns -EINVAL when no interface matches.
The enable branch and the response: cleanup label both guard against a
negative index, but the disable branch does not: it forms
info = &uadev[pcm_card_num].info[info_idx] and dereferences it.

uadev[].info is a pointer allocated only when a stream is first enabled,
so a negative info_idx on the disable path is unsafe in two ways:

- If the card was never enabled, .info is NULL and &info[-EINVAL] is a
wild pointer; reading info->data_ep_pipe faults (kernel oops).

- If the card was enabled at least once (.info allocated) and the
disable names an interface that does not match, &info[-EINVAL] points
before the allocation; info->data_ep_pipe / info->sync_ep_pipe are an
out-of-bounds slab read and, when non-zero, an out-of-bounds 4-byte
write (both pipe fields are cleared to 0). That is memory corruption,
not just a NULL dereference.

The request is reachable from unprivileged local userspace over
AF_QIPCRTR. Reject a disable request with no resolved interface, matching
the guard the enable path already has.
Published: 2026-08-15
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s ALSA USB‑audio driver for Qualcomm devices dereferences a negative index when processing a stream disable request. The code path fails to guard against a -EINVAL interface index, causing an out‑of‑bounds read and, when the target pipe fields are non‑zero, a transient out‑of‑bounds write. This results in memory corruption and a kernel oops, which can be leveraged by an attacker to gain elevated privileges on the system.

Affected Systems

All Linux kernel builds that include the qcom ALSA USB‑audio driver are affected. The vulnerability exists in any kernel that has not been patched to address the unchecked index handling in handle_uaudio_stream_req().

Risk and Exploitability

The flaw is reachable from local, unprivileged userspace via the AF_QIPCRTR socket interface. An attacker can trigger the corruption by sending a crafted disable request with an unmatched interface number. While the CVE has no published EPSS value and is not listed in the CISA KEV catalog, the nature of the bug—unbounded memory access that can lead to kernel takeover—indicates a high severity if exploited. The attack vector requires local access but only requires user privileges and therefore poses a significant risk to environments where the qcom audio driver is loaded.

Generated by OpenCVE AI on August 15, 2026 at 11:43 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the fix for the handle_uaudio_stream_req() index validation bug.
  • If an immediate kernel update is not possible, prevent unprivileged processes from opening the AF_QIPCRTR socket or unload the qcom ALSA USB‑audio module until a patch is applied.
  • Continuously monitor system logs for kernel oops or BUG messages related to ALSA USB‑audio processing, and respond promptly to any incidents.

Generated by OpenCVE AI on August 15, 2026 at 11:43 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-791

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: qcom: reject stream disable with no active interface handle_uaudio_stream_req() resolves an interface index with info_idx_from_ifnum(), which returns -EINVAL when no interface matches. The enable branch and the response: cleanup label both guard against a negative index, but the disable branch does not: it forms info = &uadev[pcm_card_num].info[info_idx] and dereferences it. uadev[].info is a pointer allocated only when a stream is first enabled, so a negative info_idx on the disable path is unsafe in two ways: - If the card was never enabled, .info is NULL and &info[-EINVAL] is a wild pointer; reading info->data_ep_pipe faults (kernel oops). - If the card was enabled at least once (.info allocated) and the disable names an interface that does not match, &info[-EINVAL] points before the allocation; info->data_ep_pipe / info->sync_ep_pipe are an out-of-bounds slab read and, when non-zero, an out-of-bounds 4-byte write (both pipe fields are cleared to 0). That is memory corruption, not just a NULL dereference. The request is reachable from unprivileged local userspace over AF_QIPCRTR. Reject a disable request with no resolved interface, matching the guard the enable path already has.
Title ALSA: usb-audio: qcom: reject stream disable with no active interface
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-15T05:56:56.470Z

Reserved: 2026-08-09T03:40:39.930Z

Link: CVE-2026-72446

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:18.500

Modified: 2026-08-15T06:22:18.500

Link: CVE-2026-72446

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T11:45:03Z

Weaknesses
  • CWE-125

    Out-of-bounds Read

  • CWE-791

    Incomplete Filtering of Special Elements