2024-03-11 19:01:31

by Mateusz Guzik

[permalink] [raw]
Subject: Re: [syzbot] [ntfs3?] WARNING in do_open_execat

On 3/11/24, Jan Kara <[email protected]> wrote:
> On Mon 11-03-24 11:04:04, syzbot wrote:
>> syzbot suspects this issue was fixed by commit:
>>
>> commit 6f861765464f43a71462d52026fbddfc858239a5
>> Author: Jan Kara <[email protected]>
>> Date: Wed Nov 1 17:43:10 2023 +0000
>>
>> fs: Block writes to mounted block devices
>>
>> bisection log:
>> https://syzkaller.appspot.com/x/bisect.txt?x=17e3f58e180000
>> start commit: eb3479bc23fa Merge tag 'kbuild-fixes-v6.7' of
>> git://git.ke..
>> git tree: upstream
>> kernel config:
>> https://syzkaller.appspot.com/x/.config?x=bdf178b2f20f99b0
>> dashboard link:
>> https://syzkaller.appspot.com/bug?extid=6ec38f7a8db3b3fb1002
>> syz repro:
>> https://syzkaller.appspot.com/x/repro.syz?x=15073fd4e80000
>> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17b20b8f680000
>>
>> If the result looks correct, please mark the issue as fixed by replying
>> with:
>
> #syz fix: fs: Block writes to mounted block devices
>

I don't think that's correct.

The bug is ntfs instantiating an inode with bogus type (based on an
intentionally corrupted filesystem), violating the api contract with
vfs, which in turn results in the warning way later.

It may be someone sorted out ntfs doing this in the meantime, I have
not checked.

With this in mind I don't believe your patch fixed it, at best it
happened to neuter the reproducer.

vfs could definitely be patched to catch this when I_NEW is getting
cleared (only when running with debug), not in the spot which
generates the warn.

--
Mateusz Guzik <mjguzik gmail.com>


2024-03-12 12:16:45

by Jan Kara

[permalink] [raw]
Subject: Re: [syzbot] [ntfs3?] WARNING in do_open_execat

On Mon 11-03-24 20:01:14, Mateusz Guzik wrote:
> On 3/11/24, Jan Kara <[email protected]> wrote:
> > On Mon 11-03-24 11:04:04, syzbot wrote:
> >> syzbot suspects this issue was fixed by commit:
> >>
> >> commit 6f861765464f43a71462d52026fbddfc858239a5
> >> Author: Jan Kara <[email protected]>
> >> Date: Wed Nov 1 17:43:10 2023 +0000
> >>
> >> fs: Block writes to mounted block devices
> >>
> >> bisection log:
> >> https://syzkaller.appspot.com/x/bisect.txt?x=17e3f58e180000
> >> start commit: eb3479bc23fa Merge tag 'kbuild-fixes-v6.7' of
> >> git://git.ke..
> >> git tree: upstream
> >> kernel config:
> >> https://syzkaller.appspot.com/x/.config?x=bdf178b2f20f99b0
> >> dashboard link:
> >> https://syzkaller.appspot.com/bug?extid=6ec38f7a8db3b3fb1002
> >> syz repro:
> >> https://syzkaller.appspot.com/x/repro.syz?x=15073fd4e80000
> >> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17b20b8f680000
> >>
> >> If the result looks correct, please mark the issue as fixed by replying
> >> with:
> >
> > #syz fix: fs: Block writes to mounted block devices
> >
>
> I don't think that's correct.
>
> The bug is ntfs instantiating an inode with bogus type (based on an
> intentionally corrupted filesystem), violating the api contract with
> vfs, which in turn results in the warning way later.
>
> It may be someone sorted out ntfs doing this in the meantime, I have
> not checked.
>
> With this in mind I don't believe your patch fixed it, at best it
> happened to neuter the reproducer.

OK, I didn't dig deep into the bug. I've just seen there are no working
reproducers and given this is ntfs3 which doesn't really have great
maintenance effort put into it, I've opted for closing the bug. If there's
a way to tickle the bug without writing to mounted block device, syzbot
should eventually find it and create a new issue... But if you want to look
into this feel free to :) Thanks for sharing the info.

Honza

--
Jan Kara <[email protected]>
SUSE Labs, CR

2024-03-12 12:44:40

by Mateusz Guzik

[permalink] [raw]
Subject: Re: [syzbot] [ntfs3?] WARNING in do_open_execat

On 3/12/24, Jan Kara <[email protected]> wrote:
> On Mon 11-03-24 20:01:14, Mateusz Guzik wrote:
>> On 3/11/24, Jan Kara <[email protected]> wrote:
>> > On Mon 11-03-24 11:04:04, syzbot wrote:
>> >> syzbot suspects this issue was fixed by commit:
>> >>
>> >> commit 6f861765464f43a71462d52026fbddfc858239a5
>> >> Author: Jan Kara <[email protected]>
>> >> Date: Wed Nov 1 17:43:10 2023 +0000
>> >>
>> >> fs: Block writes to mounted block devices
>> >>
>> >> bisection log:
>> >> https://syzkaller.appspot.com/x/bisect.txt?x=17e3f58e180000
>> >> start commit: eb3479bc23fa Merge tag 'kbuild-fixes-v6.7' of
>> >> git://git.ke..
>> >> git tree: upstream
>> >> kernel config:
>> >> https://syzkaller.appspot.com/x/.config?x=bdf178b2f20f99b0
>> >> dashboard link:
>> >> https://syzkaller.appspot.com/bug?extid=6ec38f7a8db3b3fb1002
>> >> syz repro:
>> >> https://syzkaller.appspot.com/x/repro.syz?x=15073fd4e80000
>> >> C reproducer:
>> >> https://syzkaller.appspot.com/x/repro.c?x=17b20b8f680000
>> >>
>> >> If the result looks correct, please mark the issue as fixed by
>> >> replying
>> >> with:
>> >
>> > #syz fix: fs: Block writes to mounted block devices
>> >
>>
>> I don't think that's correct.
>>
>> The bug is ntfs instantiating an inode with bogus type (based on an
>> intentionally corrupted filesystem), violating the api contract with
>> vfs, which in turn results in the warning way later.
>>
>> It may be someone sorted out ntfs doing this in the meantime, I have
>> not checked.
>>
>> With this in mind I don't believe your patch fixed it, at best it
>> happened to neuter the reproducer.
>
> OK, I didn't dig deep into the bug. I've just seen there are no working
> reproducers and given this is ntfs3 which doesn't really have great
> maintenance effort put into it, I've opted for closing the bug. If there's
> a way to tickle the bug without writing to mounted block device, syzbot
> should eventually find it and create a new issue... But if you want to look
> into this feel free to :) Thanks for sharing the info.
>

Maybe I'll get around to future-proofing by adding validation before
the inode escapes the filesystem code, but I'm definitely NOT patching
ntfs. 8->

--
Mateusz Guzik <mjguzik gmail.com>