]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
authorHui Peng <benquike@gmail.com>
Mon, 3 Dec 2018 15:09:34 +0000 (16:09 +0100)
committerBrian Maly <brian.maly@oracle.com>
Mon, 14 Jan 2019 17:25:10 +0000 (12:25 -0500)
commit3979c19fe2a7f6562d305957209b7f692a781943
treeb2f4da28c9351297fada2c7a87bbc79c53af71d0
parent24d113232d13bf8d7df80dc57e2549b1379a31da
ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c

If a USB sound card reports 0 interfaces, an error condition is triggered
and the function usb_audio_probe errors out. In the error path, there was a
use-after-free vulnerability where the memory object of the card was first
freed, followed by a decrement of the number of active chips. Moving the
decrement above the atomic_dec fixes the UAF.

[ The original problem was introduced in 3.1 kernel, while it was
  developed in a different form.  The Fixes tag below indicates the
  original commit but it doesn't mean that the patch is applicable
  cleanly. -- tiwai ]

Fixes: 362e4e49abe5 ("ALSA: usb-audio - clear chip->probing on error exit")
Reported-by: Hui Peng <benquike@gmail.com>
Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
Signed-off-by: Hui Peng <benquike@gmail.com>
Signed-off-by: Mathias Payer <mathias.payer@nebelwelt.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Orabug: 29042981
CVE: CVE-2018-19824
(cherry picked from commit 5f8cf712582617d523120df67d392059eaf2fc4b)
Signed-off-by: Dan Duval <dan.duval@oracle.com>
Reviewed-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
sound/usb/card.c