Forwarded: Re: [syzbot] [kernel?] KASAN: slab-use-after-free Read in disable_device

From: syzbot

Date: Thu Sep 17 2026 - 13:59:54 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx, syzkaller-bugs@xxxxxxxxxxxxxxxx.

***

Subject: Re: [syzbot] [kernel?] KASAN: slab-use-after-free Read in disable_device
Author: adarshdas950@xxxxxxxxx

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master

diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index ddbc4d7482d2..ecba33abb6b1 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -411,9 +411,15 @@ static int kobject_uevent_net_broadcast(struct kobject *kobj,
devpath);
else {
const struct net *net = container_of(ns, struct net, ns);
+ struct uevent_sock *ue_sk;

- ret = uevent_net_broadcast_tagged(net->uevent_sock->sk, env,
- action_string, devpath);
+ mutex_lock(&uevent_sock_mutex);
+ ue_sk = net->uevent_sock;
+ if (ue_sk && ue_sk->sk)
+ ret = uevent_net_broadcast_tagged(ue_sk->sk, env,
+ action_string,
+ devpath);
+ mutex_unlock(&uevent_sock_mutex);
}
#endif

@@ -804,13 +810,17 @@ static int uevent_net_init(struct net *net)

static void uevent_net_exit(struct net *net)
{
- struct uevent_sock *ue_sk = net->uevent_sock;
+ struct uevent_sock *ue_sk;

- if (sock_net(ue_sk->sk)->user_ns == &init_user_ns) {
- mutex_lock(&uevent_sock_mutex);
+ mutex_lock(&uevent_sock_mutex);
+ ue_sk = net->uevent_sock;
+ net->uevent_sock = NULL;
+ if (ue_sk && sock_net(ue_sk->sk)->user_ns == &init_user_ns)
list_del(&ue_sk->list);
- mutex_unlock(&uevent_sock_mutex);
- }
+ mutex_unlock(&uevent_sock_mutex);
+
+ if (!ue_sk)
+ return;

netlink_kernel_release(ue_sk->sk);
kfree(ue_sk);