On Mon, Oct 05, 2020 at 02:38:54PM -0300, Jason Gunthorpe wrote:
When get_vaddr_frames() does its hacky follow_pfn() loop it should never be allowed to extract a struct page from a normal VMA. This could allow a serious use-after-free problem on any kernel memory.
Restrict this to only work on VMA's with one of VM_IO | VM_PFNMAP set. This limits the use-after-free problem to only IO memory, which while still serious, is an improvement.
Cc: stable@vger.kernel.org Fixes: 8025e5ddf9c1 ("[media] mm: Provide new get_vaddr_frames() helper") Signed-off-by: Jason Gunthorpe jgg@nvidia.com
mm/frame_vector.c | 4 ++++ 1 file changed, 4 insertions(+)
woops, this subject got badly corrupted when I was editing the CC list, it was supposed to be:
[PATCH] mm/gpu: frame_vector: require all VMAs to be VM_PFNMAP
Andrew please let me know if you need a resend
Sorry, Jason