[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241205004941.92382-1-kuniyu@amazon.com>
Date: Thu, 5 Dec 2024 09:49:41 +0900
From: Kuniyuki Iwashima <kuniyu@...zon.com>
To: <edumazet@...gle.com>
CC: <davem@...emloft.net>, <eric.dumazet@...il.com>, <kuba@...nel.org>,
<kuniyu@...zon.com>, <netdev@...r.kernel.org>, <pabeni@...hat.com>,
<syzbot+46aa5474f179dacd1a3b@...kaller.appspotmail.com>
Subject: Re: [PATCH net] tipc: fix NULL deref in cleanup_bearer()
From: Eric Dumazet <edumazet@...gle.com>
Date: Wed, 4 Dec 2024 17:05:48 +0000
> syzbot found [1] that after blamed commit, ub->ubsock->sk
> was NULL when attempting the atomic_dec() :
>
> atomic_dec(&tipc_net(sock_net(ub->ubsock->sk))->wq_count);
>
> Fix this by caching the tipc_net pointer.
>
> [1]
>
> Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006: 0000 [#1] PREEMPT SMP KASAN PTI
> KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037]
> CPU: 0 UID: 0 PID: 5896 Comm: kworker/0:3 Not tainted 6.13.0-rc1-next-20241203-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
> Workqueue: events cleanup_bearer
> RIP: 0010:read_pnet include/net/net_namespace.h:387 [inline]
> RIP: 0010:sock_net include/net/sock.h:655 [inline]
> RIP: 0010:cleanup_bearer+0x1f7/0x280 net/tipc/udp_media.c:820
> Code: 18 48 89 d8 48 c1 e8 03 42 80 3c 28 00 74 08 48 89 df e8 3c f7 99 f6 48 8b 1b 48 83 c3 30 e8 f0 e4 60 00 48 89 d8 48 c1 e8 03 <42> 80 3c 28 00 74 08 48 89 df e8 1a f7 99 f6 49 83 c7 e8 48 8b 1b
> RSP: 0018:ffffc9000410fb70 EFLAGS: 00010206
> RAX: 0000000000000006 RBX: 0000000000000030 RCX: ffff88802fe45a00
> RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffc9000410f900
> RBP: ffff88807e1f0908 R08: ffffc9000410f907 R09: 1ffff92000821f20
> R10: dffffc0000000000 R11: fffff52000821f21 R12: ffff888031d19980
> R13: dffffc0000000000 R14: dffffc0000000000 R15: ffff88807e1f0918
> FS: 0000000000000000(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000556ca050b000 CR3: 0000000031c0c000 CR4: 00000000003526f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>
> Fixes: 6a2fa13312e5 ("tipc: Fix use-after-free of kernel socket in cleanup_bearer().")
> Reported-by: syzbot+46aa5474f179dacd1a3b@...kaller.appspotmail.com
> Closes: https://lore.kernel.org/netdev/67508b5f.050a0220.17bd51.0070.GAE@google.com/T/#u
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@...zon.com>
Thanks!
Powered by blists - more mailing lists