Re: [syzbot] [pm?] KASAN: use-after-free Read in netdev_unregister_kobject

From: Hillf Danton
Date: Tue Apr 23 2024 - 06:43:25 EST


On Mon, 22 Apr 2024 08:35:25 -0700
> syzbot found the following issue on:
>
> HEAD commit: 3cdb45594619 Merge tag 's390-6.9-4' of git://git.kernel.or..
> git tree: upstream
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=144067cb180000

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 3cdb45594619

--- x/net/bluetooth/bnep/core.c
+++ y/net/bluetooth/bnep/core.c
@@ -535,6 +535,7 @@ static int bnep_session(void *arg)
__bnep_unlink_session(s);

up_write(&bnep_session_sem);
+ put_device(dev->dev.parent);
free_netdev(dev);
module_put_and_kthread_exit(0);
return 0;
@@ -618,7 +619,7 @@ int bnep_add_connection(struct bnep_conn
bnep_set_default_proto_filter(s);
#endif

- SET_NETDEV_DEV(dev, bnep_get_device(s));
+ SET_NETDEV_DEV(dev, get_device(bnep_get_device(s)));
SET_NETDEV_DEVTYPE(dev, &bnep_type);

err = register_netdev(dev);
--