Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
17156f23e93c0f59e06dd2aaffd06221341caaee to < 23aea9c74aeea2625aaf4fbcc6beb9d09e30f9e4affected17156f23e93c0f59e06dd2aaffd06221341caaee to < c5c08965ab96b16361e69a1e2a0e89dbcb99b5a6affected17156f23e93c0f59e06dd2aaffd06221341caaee to < 9f282104627be5fbded3102ff9004f753c55a063affected17156f23e93c0f59e06dd2aaffd06221341caaee to < 2762d3ea9c929ca4094541ca517c317ffa94625baffected17156f23e93c0f59e06dd2aaffd06221341caaee to < 57f607c112966c21240c424b33e2cb71e121dcf0affected17156f23e93c0f59e06dd2aaffd06221341caaee to < cbdbfc756f2990942138ed0138da9303b4dbf9ffaffected17156f23e93c0f59e06dd2aaffd06221341caaee to < 85568535893600024d7d8794f4f8b6428b521e0caffected17156f23e93c0f59e06dd2aaffd06221341caaee to < 632108ec072ad64c8c83db6e16a7efee29ebfb74affected
Linux Linux
Default version status: affected
4.18affected0 to < 4.18unaffected5.4.302 to ≤ 5.4.*unaffected5.10.247 to ≤ 5.10.*unaffected5.15.197 to ≤ 5.15.*unaffected6.1.159 to ≤ 6.1.*unaffected6.6.117 to ≤ 6.6.*unaffected6.12.59 to ≤ 6.12.*unaffected6.17.9 to ≤ 6.17.*unaffected6.18 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/23aea9c74aeea2625aaf4fbcc6beb9d09e30f9e4 ↗
- https://git.kernel.org/stable/c/c5c08965ab96b16361e69a1e2a0e89dbcb99b5a6 ↗
- https://git.kernel.org/stable/c/9f282104627be5fbded3102ff9004f753c55a063 ↗
- https://git.kernel.org/stable/c/2762d3ea9c929ca4094541ca517c317ffa94625b ↗
- https://git.kernel.org/stable/c/57f607c112966c21240c424b33e2cb71e121dcf0 ↗
- https://git.kernel.org/stable/c/cbdbfc756f2990942138ed0138da9303b4dbf9ff ↗
- https://git.kernel.org/stable/c/85568535893600024d7d8794f4f8b6428b521e0c ↗
- https://git.kernel.org/stable/c/632108ec072ad64c8c83db6e16a7efee29ebfb74 ↗