Executive brief
The Linux kernel's USB audio subsystem can become unusable after a failed system resume, trapping applications in an unresponsive state until the system is rebooted. Failed resume operations on certain USB audio devices bypass critical cleanup steps that restore proper power state and interface counts, leaving the audio card permanently suspended from the kernel's perspective.
Technical details
The vulnerability is a state management error in usb_audio_resume() within the ALSA USB audio driver. When snd_usb_pcm_resume() or snd_usb_mixer_resume() fails during a system suspend/resume cycle, the error path jumps to err_out, bypassing an out: block that restores D0 power state and decrements the chip->num_suspended_intf counter. This leaves the card in SNDRV_CTL_POWER_D3hot state, blocking all control access in snd_power_ref_and_wait() and preventing any further audio operations. The issue affects system resume only (not runtime PM), and can be triggered on devices with mixer status URBs or UAC3 power domain requests that fail with -EPIPE or -EIO (e.g., Audient iD14 MkI). The fix routes component errors through the proper cleanup path when system_suspend is nonzero, ensuring state consistency is maintained even on resume failure.
Affected products
- Linux Linux kernel multiple versions (longstanding issue from commit 88a8516a2128a onwards)
Timeline
- 2026-09-04: disclosed