]> git.itanic.dy.fi Git - linux-stable/commit
Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
authorTakashi Iwai <tiwai@suse.de>
Sat, 28 Aug 2021 16:18:18 +0000 (18:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Nov 2021 10:40:26 +0000 (11:40 +0100)
commit3eb50acbc96c9de3d8a056982938ece9bd1c2b91
tree92fa37181c56ac83e03ce7b9c01acb5bbcbb5c4b
parent6c9f0f3dfbf01e2bd935771ba836c8a89c80cea3
Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()

[ Upstream commit 99c23da0eed4fd20cae8243f2b51e10e66aa0951 ]

The sco_send_frame() also takes lock_sock() during memcpy_from_msg()
call that may be endlessly blocked by a task with userfaultd
technique, and this will result in a hung task watchdog trigger.

Just like the similar fix for hci_sock_sendmsg() in commit
92c685dc5de0 ("Bluetooth: reorganize functions..."), this patch moves
the  memcpy_from_msg() out of lock_sock() for addressing the hang.

This should be the last piece for fixing CVE-2021-3640 after a few
already queued fixes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/sco.c