]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ALSA: aloop: Fix racy access at PCM trigger
authorTakashi Iwai <tiwai@suse.de>
Tue, 3 Feb 2026 14:09:59 +0000 (15:09 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 3 Feb 2026 14:22:21 +0000 (15:22 +0100)
commit826af7fa62e347464b1b4e0ba2fe19a92438084f
treec1a67f5b2aedd36e8e90237f2f7c19af5865c1bc
parent00f32dfceda29f8dc6c34b159123f3bf78ad3b4c
ALSA: aloop: Fix racy access at PCM trigger

The PCM trigger callback of aloop driver tries to check the PCM state
and stop the stream of the tied substream in the corresponding cable.
Since both check and stop operations are performed outside the cable
lock, this may result in UAF when a program attempts to trigger
frequently while opening/closing the tied stream, as spotted by
fuzzers.

For addressing the UAF, this patch changes two things:
- It covers the most of code in loopback_check_format() with
  cable->lock spinlock, and add the proper NULL checks.  This avoids
  already some racy accesses.
- In addition, now we try to check the state of the capture PCM stream
  that may be stopped in this function, which was the major pain point
  leading to UAF.

Reported-by: syzbot+5f8f3acdee1ec7a7ef7b@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/69783ba1.050a0220.c9109.0011.GAE@google.com
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20260203141003.116584-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/drivers/aloop.c