CVE-2026-23089 Overview
CVE-2026-23089 is a use-after-free vulnerability in the Linux kernel's ALSA USB audio subsystem. The flaw occurs in the snd_usb_mixer_free() function when snd_usb_create_mixer() fails. During failure cleanup, the function frees mixer->id_elems while controls already added to the sound card still reference this freed memory. When snd_card_register() subsequently runs, the OSS mixer layer invokes callbacks on these controls, resulting in a use-after-free read condition.
Critical Impact
This vulnerability can lead to information disclosure or potentially kernel memory corruption when USB audio devices are connected, as freed memory is accessed during the sound card registration process.
Affected Products
- Linux kernel (ALSA USB audio subsystem)
- Systems with USB audio device support enabled
- Distributions using affected kernel versions
Discovery Timeline
- 2026-02-04 - CVE CVE-2026-23089 published to NVD
- 2026-02-05 - Last updated in NVD database
Technical Details for CVE-2026-23089
Vulnerability Analysis
The vulnerability exists in the error handling path of the ALSA USB audio mixer initialization code. When snd_usb_create_mixer() encounters an error and fails, the cleanup function snd_usb_mixer_free() is called to release allocated resources. However, a critical ordering issue causes a use-after-free condition.
The problem manifests because mixer controls are added to the sound card before snd_usb_create_mixer() completes. If an error occurs after controls are added, snd_usb_mixer_free() frees the mixer->id_elems array. However, the controls remain registered with the card and still hold pointers to elements within this now-freed memory region.
The call trace demonstrates the exploitation path:
- usb_audio_probe() initiates the USB audio device setup
- snd_card_register() is called to finalize card registration
- The OSS mixer layer calls snd_mixer_oss_build_test()
- This triggers mixer_ctl_feature_info() and ultimately get_ctl_value()
- The control callback accesses the freed id_elems memory
Root Cause
The root cause is improper resource management during error handling in the USB audio mixer initialization. The code fails to remove mixer controls from the sound card before freeing the underlying data structures they reference. This violates the principle that allocated resources should be freed in the reverse order of allocation, and any references to a resource must be invalidated before the resource itself is freed.
Attack Vector
Exploitation requires the ability to connect a USB audio device to the target system. An attacker with physical access could potentially use a malicious USB device designed to trigger the snd_usb_create_mixer() failure condition. The resulting use-after-free read could potentially leak kernel memory contents or, in certain scenarios, lead to further memory corruption if the freed memory is reallocated with attacker-controlled data.
The vulnerability occurs during device enumeration, meaning exploitation happens automatically when the malicious device is connected, without requiring user interaction beyond the physical connection.
Detection Methods for CVE-2026-23089
Indicators of Compromise
- Kernel log messages indicating ALSA USB audio mixer initialization failures
- Unexpected kernel crashes or panics with call traces involving snd_usb_mixer_free() or get_ctl_value()
- Memory corruption warnings related to the sound subsystem
- Suspicious USB device connection events followed by sound subsystem errors
Detection Strategies
- Monitor kernel logs for ALSA USB audio error messages during device enumeration
- Deploy kernel memory sanitizers (KASAN) in development/testing environments to detect use-after-free conditions
- Implement USB device allowlisting to prevent unauthorized audio devices from triggering the vulnerable code path
- Use kernel auditing to track USB device connections and sound subsystem initialization events
Monitoring Recommendations
- Enable kernel log forwarding to centralized SIEM for correlation of USB and audio subsystem events
- Configure alerts for kernel oops or panic events with call traces containing sound/usb/mixer.c
- Monitor for unusual patterns of USB device connections, particularly from unknown device identifiers
- Implement endpoint detection and response (EDR) agents capable of detecting kernel memory anomalies
How to Mitigate CVE-2026-23089
Immediate Actions Required
- Apply the kernel patch from the official kernel git repository
- Restrict physical access to systems where USB device connections are a concern
- Consider disabling the OSS mixer compatibility layer if not required
- Implement USB device authorization policies to block unknown audio devices
Patch Information
The fix ensures that snd_ctl_remove() is called for all mixer controls before freeing id_elems. The patch saves the next pointer before calling snd_ctl_remove() since the removal operation frees the current element. Multiple kernel stable branches have received the fix:
- Kernel Commit 7bff0156d13f
- Kernel Commit 930e69757b74
- Kernel Commit dc1a5dd80af1
- Kernel Commit e6f103a22b08
Workarounds
- Disable USB audio support by blacklisting the snd-usb-audio kernel module using modprobe.d configuration
- Implement physical USB port blocking or disable unused USB controllers in BIOS/UEFI settings
- Use USBGuard or similar tools to implement strict device authorization policies
- Compile kernels with CONFIG_SND_USB_AUDIO=n if USB audio functionality is not required
# Configuration example - Disable USB audio module loading
echo "blacklist snd-usb-audio" | sudo tee /etc/modprobe.d/disable-usb-audio.conf
sudo update-initramfs -u
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

