]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mm/hugetlb.c: fix UAF of vma in hugetlb fault pathway
authorVishal Moola (Oracle) <vishal.moola@gmail.com>
Sat, 14 Sep 2024 19:41:19 +0000 (12:41 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 17 Sep 2024 07:58:04 +0000 (00:58 -0700)
commit98b74bb4d7e96b4da5ef3126511febe55b76b807
treead5288b180e5f24c8a98f504fb18eb356b53ef04
parent2a058ab3286d6475b2082b90c2d2182d2fea4b39
mm/hugetlb.c: fix UAF of vma in hugetlb fault pathway

Syzbot reports a UAF in hugetlb_fault().  This happens because
vmf_anon_prepare() could drop the per-VMA lock and allow the current VMA
to be freed before hugetlb_vma_unlock_read() is called.

We can fix this by using a modified version of vmf_anon_prepare() that
doesn't release the VMA lock on failure, and then release it ourselves
after hugetlb_vma_unlock_read().

Link: https://lkml.kernel.org/r/20240914194243.245-2-vishal.moola@gmail.com
Fixes: 9acad7ba3e25 ("hugetlb: use vmf_anon_prepare() instead of anon_vma_prepare()")
Reported-by: syzbot+2dab93857ee95f2eeb08@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-mm/00000000000067c20b06219fbc26@google.com/
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/hugetlb.c