CVE-2025-40275

Summary

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

ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd

In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.

This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.

This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 23aea9c74aeea2625aaf4fbcc6beb9d09e30f9e4affected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < c5c08965ab96b16361e69a1e2a0e89dbcb99b5a6affected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 9f282104627be5fbded3102ff9004f753c55a063affected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 2762d3ea9c929ca4094541ca517c317ffa94625baffected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 57f607c112966c21240c424b33e2cb71e121dcf0affected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < cbdbfc756f2990942138ed0138da9303b4dbf9ffaffected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 85568535893600024d7d8794f4f8b6428b521e0caffected
LinuxLinux17156f23e93c0f59e06dd2aaffd06221341caaee < 632108ec072ad64c8c83db6e16a7efee29ebfb74affected
LinuxLinux4.18affected
LinuxLinux0 < 4.18unaffected
LinuxLinux5.4.302 <= 5.4.*unaffected
LinuxLinux5.10.247 <= 5.10.*unaffected
LinuxLinux5.15.197 <= 5.15.*unaffected
LinuxLinux6.1.159 <= 6.1.*unaffected
LinuxLinux6.6.117 <= 6.6.*unaffected
LinuxLinux6.12.59 <= 6.12.*unaffected
LinuxLinux6.17.9 <= 6.17.*unaffected
LinuxLinux6.18 <= *unaffected

Weaknesses

References