Re: [PATCH v1] fsnotify: Pass correct offset to fsnotify_mmap_perm()
From: Amir Goldstein
Date: Tue Oct 07 2025 - 07:08:23 EST
On Mon, Oct 6, 2025 at 4:40 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>
> On Mon, Oct 6, 2025 at 3:53 PM David Hildenbrand <david@xxxxxxxxxx> wrote:
> >
> > On 06.10.25 14:14, Ryan Roberts wrote:
> > > On 06/10/2025 12:36, David Hildenbrand wrote:
> > >> On 03.10.25 17:52, Ryan Roberts wrote:
> > >>> fsnotify_mmap_perm() requires a byte offset for the file about to be
> > >>> mmap'ed. But it is called from vm_mmap_pgoff(), which has a page offset.
> > >>> Previously the conversion was done incorrectly so let's fix it, being
> > >>> careful not to overflow on 32-bit platforms.
> > >>>
> > >>> Discovered during code review.
> > >>>
> > >>> Cc: <stable@xxxxxxxxxxxxxxx>
> > >>> Fixes: 066e053fe208 ("fsnotify: add pre-content hooks on mmap()")
> > >>> Signed-off-by: Ryan Roberts <ryan.roberts@xxxxxxx>
> > >>> ---
> > >>> Applies against today's mm-unstable (aa05a436eca8).
> > >>>
> > >>
> > >> Curious: is there some easy way to write a reproducer? Did you look into that?
> > >
> > > I didn't; this was just a drive-by discovery.
> > >
> > > It looks like there are some fanotify tests in the filesystems selftests; I
> > > guess they could be extended to add a regression test?
> > >
> > > But FWIW, I think the kernel is just passing the ofset/length info off to user
> > > space and isn't acting on it itself. So there is no kernel vulnerability here.
> >
> > Right, I'm rather wondering if this could have been caught earlier and
> > how we could have caught it earlier :)
>
> Ha! you would have thought we either have no test for it or we test
> only mmap with offset 0.
>
> But we have LTP test fanotify24 which does mmap with offset page_sz*100
> and indeed it prints the info and info says offset 0, only we do not verify the
> offset info in this test...
>
> Will be fixed.
Jan,
FYI test enhanced and verified the bug and the fix:
https://github.com/amir73il/ltp/commits/fsnotify-fixes/
Will wait with posting the test until you merge the fix to make sure that the
commit id is not changed.
Thanks,
Amir.