This is a note to let you know that I've just added the patch titled ALSA: seq: Don't allow resizing pool in use to the 4.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: alsa-seq-don-t-allow-resizing-pool-in-use.patch and it can be found in the queue-4.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From d85739367c6d56e475c281945c68fdb05ca74b4c Mon Sep 17 00:00:00 2001 From: Takashi Iwai <tiwai@xxxxxxx> Date: Mon, 5 Mar 2018 22:00:55 +0100 Subject: ALSA: seq: Don't allow resizing pool in use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Takashi Iwai <tiwai@xxxxxxx> commit d85739367c6d56e475c281945c68fdb05ca74b4c upstream. This is a fix for a (sort of) fallout in the recent commit d15d662e89fc ("ALSA: seq: Fix racy pool initializations") for CVE-2018-1000004. As the pool resize deletes the existing cells, it may lead to a race when another thread is writing concurrently, eventually resulting a UAF. A simple workaround is not to allow the pool resizing when the pool is in use. It's an invalid behavior in anyway. Fixes: d15d662e89fc ("ALSA: seq: Fix racy pool initializations") Reported-by: 范龙飞 <long7573@xxxxxxx> Reported-by: Nicolai Stange <nstange@xxxxxxx> Cc: <stable@xxxxxxxxxxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- sound/core/seq/seq_clientmgr.c | 3 +++ 1 file changed, 3 insertions(+) --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -1834,6 +1834,9 @@ static int snd_seq_ioctl_set_client_pool (! snd_seq_write_pool_allocated(client) || info->output_pool != client->pool->size)) { if (snd_seq_write_pool_allocated(client)) { + /* is the pool in use? */ + if (atomic_read(&client->pool->counter)) + return -EBUSY; /* remove all existing cells */ snd_seq_pool_mark_closing(client->pool); snd_seq_queue_client_leave_cells(client->number); Patches currently in stable-queue which might be from tiwai@xxxxxxx are queue-4.14/alsa-seq-don-t-allow-resizing-pool-in-use.patch queue-4.14/documentation-sphinx-fix-directive-import-error.patch queue-4.14/alsa-hda-add-dock-and-led-support-for-hp-probook-640-g2.patch queue-4.14/alsa-hda-realtek-make-dock-sound-work-on-thinkpad-l570.patch queue-4.14/alsa-hda-realtek-limit-mic-boost-on-t480.patch queue-4.14/alsa-hda-add-dock-and-led-support-for-hp-elitebook-820-g3.patch queue-4.14/alsa-seq-more-protection-for-concurrent-write-and-ioctl-races.patch queue-4.14/alsa-hda-realtek-add-support-headset-mode-for-dell-wyse.patch queue-4.14/alsa-hda-realtek-add-headset-mode-support-for-dell-laptop.patch queue-4.14/alsa-hda-fix-a-wrong-fixup-for-alc289-on-dell-machines.patch queue-4.14/alsa-hda-realtek-fix-dock-line-out-volume-on-dell-precision-7520.patch