[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a132579a-b97c-4653-9ede-6fb25a6eb20c@kernel.dk>
Date: Mon, 12 May 2025 07:56:39 -0600
From: Jens Axboe <axboe@...nel.dk>
To: Pavel Begunkov <asml.silence@...il.com>,
syzbot <syzbot+6456a99dfdc2e78c4feb@...kaller.appspotmail.com>,
io-uring@...r.kernel.org, linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [io-uring?] BUG: unable to handle kernel NULL pointer
dereference in io_buffer_select
On 5/11/25 6:22 AM, Pavel Begunkov wrote:
> On 5/11/25 01:19, syzbot wrote:
>> Hello,
>>
>> syzbot found the following issue on:
>>
>> HEAD commit: 0d8d44db295c Merge tag 'for-6.15-rc5-tag' of git://git.ker..
>> git tree: upstream
>> console output: https://syzkaller.appspot.com/x/log.txt?x=12df282f980000
>> kernel config: https://syzkaller.appspot.com/x/.config?x=925afd2bdd38a581
>> dashboard link: https://syzkaller.appspot.com/bug?extid=6456a99dfdc2e78c4feb
>> compiler: arm-linux-gnueabi-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
>> userspace arch: arm
>> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=150338f4580000
>> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=143984f4580000
>>
>> Downloadable assets:
>> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/98a89b9f34e4/non_bootable_disk-0d8d44db.raw.xz
>> vmlinux: https://storage.googleapis.com/syzbot-assets/f2af76a30640/vmlinux-0d8d44db.xz
>> kernel image: https://storage.googleapis.com/syzbot-assets/a0bb41cd257b/zImage-0d8d44db.xz
>>
>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
>> Reported-by: syzbot+6456a99dfdc2e78c4feb@...kaller.appspotmail.com
>>
>> Unable to handle kernel NULL pointer dereference at virtual address 0000000e when read
>> [0000000e] *pgd=84797003, *pmd=df777003
>> Internal error: Oops: 205 [#1] SMP ARM
>> Modules linked in:
>> CPU: 1 UID: 0 PID: 3105 Comm: syz-executor192 Not tainted 6.15.0-rc5-syzkaller #0 PREEMPT
>> Hardware name: ARM-Versatile Express
>> PC is at io_ring_buffer_select io_uring/kbuf.c:163 [inline]
>
> this line:
>
> tail = smp_load_acquire(&br->tail);
>
> The offset of the tail field is 0xe so bl->buf_ring should be 0. That's
> while it has IOBL_BUF_RING flag set. Same goes for the other report. Also,
> since it's off io_buffer_select(), which looks up the list every time we
> can exclude the req having a dangling pointer.
It's funky for sure, the other one is regular classic provided buffers.
Interestingly, both reports are for arm32...
--
Jens Axboe
Powered by blists - more mailing lists