lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADvbK_eFe==9fLGDQ8HC3CffQqMx7FMiC3CcN=jb1MQrJJPx8A@mail.gmail.com>
Date: Thu, 25 Jul 2024 10:30:29 -0400
From: Xin Long <lucien.xin@...il.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, 
	Paolo Abeni <pabeni@...hat.com>, Jamal Hadi Salim <jhs@...atatu.com>, 
	Cong Wang <xiyou.wangcong@...il.com>, Jiri Pirko <jiri@...nulli.us>, netdev@...r.kernel.org, 
	eric.dumazet@...il.com, syzbot+1b5e4e187cc586d05ea0@...kaller.appspotmail.com
Subject: Re: [PATCH net] sched: act_ct: take care of padding in struct zones_ht_key

On Thu, Jul 25, 2024 at 5:27 AM Eric Dumazet <edumazet@...gle.com> wrote:
>
> Blamed commit increased lookup key size from 2 bytes to 16 bytes,
> because zones_ht_key got a struct net pointer.
>
> Make sure rhashtable_lookup() is not using the padding bytes
> which are not initialized.
>
>  BUG: KMSAN: uninit-value in rht_ptr_rcu include/linux/rhashtable.h:376 [inline]
>  BUG: KMSAN: uninit-value in __rhashtable_lookup include/linux/rhashtable.h:607 [inline]
>  BUG: KMSAN: uninit-value in rhashtable_lookup include/linux/rhashtable.h:646 [inline]
>  BUG: KMSAN: uninit-value in rhashtable_lookup_fast include/linux/rhashtable.h:672 [inline]
>  BUG: KMSAN: uninit-value in tcf_ct_flow_table_get+0x611/0x2260 net/sched/act_ct.c:329
>   rht_ptr_rcu include/linux/rhashtable.h:376 [inline]
>   __rhashtable_lookup include/linux/rhashtable.h:607 [inline]
>   rhashtable_lookup include/linux/rhashtable.h:646 [inline]
>   rhashtable_lookup_fast include/linux/rhashtable.h:672 [inline]
>   tcf_ct_flow_table_get+0x611/0x2260 net/sched/act_ct.c:329
>   tcf_ct_init+0xa67/0x2890 net/sched/act_ct.c:1408
>   tcf_action_init_1+0x6cc/0xb30 net/sched/act_api.c:1425
>   tcf_action_init+0x458/0xf00 net/sched/act_api.c:1488
>   tcf_action_add net/sched/act_api.c:2061 [inline]
>   tc_ctl_action+0x4be/0x19d0 net/sched/act_api.c:2118
>   rtnetlink_rcv_msg+0x12fc/0x1410 net/core/rtnetlink.c:6647
>   netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2550
>   rtnetlink_rcv+0x34/0x40 net/core/rtnetlink.c:6665
>   netlink_unicast_kernel net/netlink/af_netlink.c:1331 [inline]
>   netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1357
>   netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1901
>   sock_sendmsg_nosec net/socket.c:730 [inline]
>   __sock_sendmsg+0x30f/0x380 net/socket.c:745
>   ____sys_sendmsg+0x877/0xb60 net/socket.c:2597
>   ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2651
>   __sys_sendmsg net/socket.c:2680 [inline]
>   __do_sys_sendmsg net/socket.c:2689 [inline]
>   __se_sys_sendmsg net/socket.c:2687 [inline]
>   __x64_sys_sendmsg+0x307/0x4a0 net/socket.c:2687
>   x64_sys_call+0x2dd6/0x3c10 arch/x86/include/generated/asm/syscalls_64.h:47
>   do_syscall_x64 arch/x86/entry/common.c:52 [inline]
>   do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> Local variable key created at:
>   tcf_ct_flow_table_get+0x4a/0x2260 net/sched/act_ct.c:324
>   tcf_ct_init+0xa67/0x2890 net/sched/act_ct.c:1408
>
> Fixes: 88c67aeb1407 ("sched: act_ct: add netns into the key of tcf_ct_flow_table")
> Reported-by: syzbot+1b5e4e187cc586d05ea0@...kaller.appspotmail.com
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Cc: Xin Long <lucien.xin@...il.com>

Reviewed-by: Xin Long <lucien.xin@...il.com>

Thanks, didn't know this doesn't get padding bytes initialized:

struct zones_ht_key key = { .net = net, .zone = params->zone };

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ