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

ALSA: usb-audio: fix stack info leak in RME Digiface status

snd_rme_digiface_read_status() reads a four-word status block from the
device into an uninitialised on-stack __le32 buf[4] and, whenever the
vendor control-IN transfer does not return a negative error, copies all
four words into the caller's status[].

snd_usb_ctl_msg() copies the full requested size back into the caller's
buffer regardless of how many bytes the data stage actually delivered:

buf = kmemdup(data, size, GFP_KERNEL);
err = usb_control_msg(dev, pipe, request, requesttype,
value, index, buf, size, timeout);
memcpy(data, buf, size);

usb_control_msg() returns the transferred length on a short control-IN,
which is a non-negative value, and writes only that many bytes. The
remainder of the copy back is the kmemdup()ed image of the caller's
buffer, so a device answering with a short data stage leaves the
trailing words of buf[] holding leftover kernel stack. The only guard
in the caller is err < 0, so those words are stored into status[].

They then reach user space: snd_rme_digiface_get_status_val() selects a
16-bit halfword of status[] per the control's reg/mask, and the eight
Digiface status controls together expose the whole 16-byte frame to an
unprivileged reader of /dev/snd/controlC*.

Zero-initialise the buffer so a short read yields zeros instead of stack
residue. This mirrors snd_rme_get_status1(), which already clears its
output word before the same kind of vendor read.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Published: 2026-08-15
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the ALSA usb‑audio driver for the Linux kernel, the function that reads the status of an RME Digiface device copies data from an on‑stack buffer that has not been initialized. If a control‑IN transaction returns fewer bytes than requested, the remaining words of that buffer still contain leftover stack data, which is then passed to user space through the normal ALSA control interface. This results in an unprivileged user able to read sensitive kernel memory, exposing confidential information. The weakness is a use of uninitialized data that leads to information disclosure, corresponding to CWE‑908.

Affected Systems

All Linux kernel builds using the ALSA usb‑audio driver prior to the patch that zero‑initializes the status buffer are affected. The issue is located in the audio subsystem, specifically the RME Digiface status handling code. No specific kernel versions are listed, so any kernel containing the old implementation of snd_rme_digiface_read_status is vulnerable.

Risk and Exploitability

The vulnerability is exploitable by any local user who can access the /dev/snd/controlC* devices and issue the appropriate control request. An attacker does not need elevated privileges; the attacker simply uses the existing ALSA interface to trigger a short control‑IN response and then reads the returned status values, which will include leaked stack data. The EPSS score is <1%, and the vulnerability is not listed in the CISA KEV catalog, indicating that widespread exploitation has not been observed yet. However, the impact is significant for confidentiality because information about kernel state can be exposed to unprivileged users. The CVSS score of 5.5 reflects moderate risk.

Generated by OpenCVE AI on August 18, 2026 at 04:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes the commit that zero‑initializes the status buffer (see commit references in the advisory).
  • If an immediate kernel upgrade is not possible, unload or disable the ALSA usb‑audio module or otherwise prevent the usb‑audio driver from binding to the device. This stops the control requests that trigger the leak.
  • Restrict permissions on the /dev/snd/controlC* device files and audit accesses so that only trusted users or applications can read the control registers. This limits the ability of an attacker to trigger and read the leaked data.

Generated by OpenCVE AI on August 18, 2026 at 04:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6466-1 linux security update
History

Tue, 18 Aug 2026 03:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-457

Tue, 18 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-908
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


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

Type Values Removed Values Added
Weaknesses CWE-200
CWE-457

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: fix stack info leak in RME Digiface status snd_rme_digiface_read_status() reads a four-word status block from the device into an uninitialised on-stack __le32 buf[4] and, whenever the vendor control-IN transfer does not return a negative error, copies all four words into the caller's status[]. snd_usb_ctl_msg() copies the full requested size back into the caller's buffer regardless of how many bytes the data stage actually delivered: buf = kmemdup(data, size, GFP_KERNEL); err = usb_control_msg(dev, pipe, request, requesttype, value, index, buf, size, timeout); memcpy(data, buf, size); usb_control_msg() returns the transferred length on a short control-IN, which is a non-negative value, and writes only that many bytes. The remainder of the copy back is the kmemdup()ed image of the caller's buffer, so a device answering with a short data stage leaves the trailing words of buf[] holding leftover kernel stack. The only guard in the caller is err < 0, so those words are stored into status[]. They then reach user space: snd_rme_digiface_get_status_val() selects a 16-bit halfword of status[] per the control's reg/mask, and the eight Digiface status controls together expose the whole 16-byte frame to an unprivileged reader of /dev/snd/controlC*. Zero-initialise the buffer so a short read yields zeros instead of stack residue. This mirrors snd_rme_get_status1(), which already clears its output word before the same kind of vendor read. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Title ALSA: usb-audio: fix stack info leak in RME Digiface status
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-17T05:20:38.636Z

Reserved: 2026-08-15T05:44:03.907Z

Link: CVE-2026-74500

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T13:17:54.970

Modified: 2026-08-17T06:19:46.447

Link: CVE-2026-74500

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-74500 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T04:45:04Z

Weaknesses
  • CWE-908

    Use of Uninitialized Resource