[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3460e09f-fafd-4d59-829a-341fa47d9652@gmail.com>
Date: Sun, 11 May 2025 13:22:35 +0100
From: Pavel Begunkov <asml.silence@...il.com>
To: syzbot <syzbot+6456a99dfdc2e78c4feb@...kaller.appspotmail.com>,
axboe@...nel.dk, 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 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.
--
Pavel Begunkov
Powered by blists - more mailing lists