Re: [PATCH] mm: userfaultfd: fix unexpected change to src_folio when UFFDIO_MOVE fails

From: David Hildenbrand
Date: Wed Feb 28 2024 - 05:47:10 EST


On 22.02.24 22:56, Suren Baghdasaryan wrote:
On Thu, Feb 22, 2024 at 1:00 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

On Thu, 22 Feb 2024 16:08:15 +0800 Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> wrote:

After ptep_clear_flush(), if we find that src_folio is pinned we will fail
UFFDIO_MOVE and put src_folio back to src_pte entry, but the change to
src_folio->{mapping,index} is not restored in this process. This is not
what we expected, so fix it.

Fixes: adef440691ba ("userfaultfd: UFFDIO_MOVE uABI")

What are the expected worst-case userspace-visible runtime effects of
this flaw?

It can cause rmap for that page to be invalid. I guess memory
corruption might be the visible effect?

At least swapout+migration would no longer work, because we might fail to locate the mappings of that folio.

Memory corruption, not sure.

--
Cheers,

David / dhildenb