ext4: fix possible UAF when remounting r/o a mmp-protected file system
authorTheodore Ts'o <tytso@mit.edu>
Fri, 2 Jul 2021 16:45:02 +0000 (12:45 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 2 Nov 2021 18:48:18 +0000 (19:48 +0100)
commitb663890d854403e566169f7e90aed5cd6ff64f6b
tree032adbe396ce71de97384d1a5b3ff3a6190986d6
parentd4d9c065988c4c2c7c0cc4be0f7e1c3563e1e779
ext4: fix possible UAF when remounting r/o a mmp-protected file system

commit 61bb4a1c417e5b95d9edb4f887f131de32e419cb upstream.

After commit 618f003199c6 ("ext4: fix memory leak in
ext4_fill_super"), after the file system is remounted read-only, there
is a race where the kmmpd thread can exit, causing sbi->s_mmp_tsk to
point at freed memory, which the call to ext4_stop_mmpd() can trip
over.

Fix this by only allowing kmmpd() to exit when it is stopped via
ext4_stop_mmpd().

Link: https://lore.kernel.org/r/20210707002433.3719773-1-tytso@mit.edu
Reported-by: Ye Bin <yebin10@huawei.com>
Bug-Report-Link: <20210629143603.2166962-1-yebin10@huawei.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: Tadeusz Struk <tadeusz.struk@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/mmp.c
fs/ext4/super.c