[PATCH 21/46] mm/gup: fix out-of-bounds write for nr_pages == 0 in GUP-fast

Muchun Song muchun.song at linux.dev
Tue Oct 27 02:40:31 PDT 2026



> On Oct 27, 2026, at 07:17, David Hildenbrand (Arm) <david at kernel.org> wrote:
> 
> From: Chris Mason <mason at kernel.org>
> 
> With nr_pages == 0, GUP-fast still enters its page table walk and can
> write past the caller's page array. The old end <= start check caught
> empty ranges, but was replaced with an overflow check.
> 
> Users such as OrangeFS can pass a zero page count derived from a
> userspace-supplied length. So let's return zero for nr_pages == 0 before
> starting the walk, just like GUP-slow.
> 
> Fix generated by an LLM and sent by Chris Mason in private.
> 
> Fixes: c28b1fc70390 ("mm/gup: reorganize internal_get_user_pages_fast()")
> Cc: stable at vger.kernel.org
> Signed-off-by: Chris Mason <mason at kernel.org>
> [ david: simplify description ]
> Signed-off-by: David Hildenbrand (Arm) <david at kernel.org>

Acked-by: Muchun Song <muchun.song at linux.dev>

Thanks.




More information about the kexec mailing list