[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250720011228.2536-1-hdanton@sina.com>
Date: Sun, 20 Jul 2025 09:12:25 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+01523a0ae5600aef5895@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [io-uring?] KASAN: slab-use-after-free Read in io_poll_remove_entries
> Date: Sat, 19 Jul 2025 10:29:34 -0700 [thread overview]
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 4871b7cb27f4 Merge tag 'v6.16-rc6-smb3-client-fixes' of gi..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=1288c38c580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=fa738a4418f051ee
> dashboard link: https://syzkaller.appspot.com/bug?extid=01523a0ae5600aef5895
> compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1688c38c580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=166ed7d4580000
What is difficult to understand is why rcu failed to prevent the uaf.
#syz test
--- x/include/linux/comedi/comedidev.h
+++ y/include/linux/comedi/comedidev.h
@@ -364,6 +364,7 @@ struct comedi_async {
struct comedi_cmd cmd;
wait_queue_head_t wait_head;
unsigned int cb_mask;
+ struct rcu_head rcu;
int (*inttrig)(struct comedi_device *dev, struct comedi_subdevice *s,
unsigned int x);
};
--- l/drivers/comedi/drivers.c
+++ y/drivers/comedi/drivers.c
@@ -168,7 +168,7 @@ static void comedi_device_detach_cleanup
comedi_free_subdevice_minor(s);
if (s->async) {
comedi_buf_alloc(dev, s, 0);
- kfree(s->async);
+ kfree_rcu(s->async, rcu);
}
kfree(s->readback);
}
--
Powered by blists - more mailing lists