* [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak
@ 2025-11-09 9:13 Ranganath V N
2025-11-09 9:13 ` [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Ranganath V N
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Ranganath V N @ 2025-11-09 9:13 UTC (permalink / raw)
To: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid,
kuba, pabeni, vnranganath.20, xiyou.wangcong
Cc: linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee
This series addresses the uninitialization of the struct which has
2 bytes of padding. And copying this uninitialized data to userspace
can leak info from kernel memory.
This series ensures all members and padding are cleared prior to
begin copied.
This change silences the KMSAN report and prevents potential information
leaks from the kernel memory.
Signed-off-by: Ranganath V N <vnranganath.20@gmail.com>
---
Changes in v4:
- including net in the subject.
- added the Fixes,closes,tested-by and Reported-by tags for patch(1/2)
- Link to v3: https://lore.kernel.org/lkml/20251106195635.2438-1-vnranganath.20@gmail.com/#t
Changes in v3:
- updated the commit messages and subject.
- corrected the code misisng ";" in v2
- Link to v2: https://lore.kernel.org/r/20251101-infoleak-v2-0-01a501d41c09@gmail.com
Changes in v2:
- removed memset(&t, 0, sizeof(t)) from previous patch.
- added the new patch series to address the issue.
- Link to v1: https://lore.kernel.org/r/20251031-infoleak-v1-1-9f7250ee33aa@gmail.com
Ranganath V N (2):
net: sched: act_connmark: initialize struct tc_ife to fix kernel leak
net: sched: act_ife: initialize struct tc_ife to fix KMSAN
kernel-infoleak
net/sched/act_connmark.c | 12 +++++++-----
net/sched/act_ife.c | 12 +++++++-----
2 files changed, 14 insertions(+), 10 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak 2025-11-09 9:13 [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Ranganath V N @ 2025-11-09 9:13 ` Ranganath V N 2025-11-09 9:30 ` Eric Dumazet 2025-11-09 9:13 ` [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Ranganath V N ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Ranganath V N @ 2025-11-09 9:13 UTC (permalink / raw) To: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, vnranganath.20, xiyou.wangcong Cc: linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace. Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied. Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com Fixes: 22a5dc0e5e3e ("net: sched: Introduce connmark action") Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> --- net/sched/act_connmark.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/net/sched/act_connmark.c b/net/sched/act_connmark.c index 3e89927d7116..26ba8c2d20ab 100644 --- a/net/sched/act_connmark.c +++ b/net/sched/act_connmark.c @@ -195,13 +195,15 @@ static inline int tcf_connmark_dump(struct sk_buff *skb, struct tc_action *a, const struct tcf_connmark_info *ci = to_connmark(a); unsigned char *b = skb_tail_pointer(skb); const struct tcf_connmark_parms *parms; - struct tc_connmark opt = { - .index = ci->tcf_index, - .refcnt = refcount_read(&ci->tcf_refcnt) - ref, - .bindcnt = atomic_read(&ci->tcf_bindcnt) - bind, - }; + struct tc_connmark opt; struct tcf_t t; + memset(&opt, 0, sizeof(opt)); + + opt.index = ci->tcf_index; + opt.refcnt = refcount_read(&ci->tcf_refcnt) - ref; + opt.bindcnt = atomic_read(&ci->tcf_bindcnt) - bind; + rcu_read_lock(); parms = rcu_dereference(ci->parms); -- 2.43.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak 2025-11-09 9:13 ` [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Ranganath V N @ 2025-11-09 9:30 ` Eric Dumazet 0 siblings, 0 replies; 11+ messages in thread From: Eric Dumazet @ 2025-11-09 9:30 UTC (permalink / raw) To: Ranganath V N Cc: davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee On Sun, Nov 9, 2025 at 1:13 AM Ranganath V N <vnranganath.20@gmail.com> wrote: > > In tcf_connmark_dump(), the variable 'opt' was partially initialized using a > designatied initializer. While the padding bytes are reamined > uninitialized. nla_put() copies the entire structure into a > netlink message, these uninitialized bytes leaked to userspace. > > Initialize the structure with memset before assigning its fields > to ensure all members and padding are cleared prior to beign copied. > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Fixes: 22a5dc0e5e3e ("net: sched: Introduce connmark action") > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> > --- Reviewed-by: Eric Dumazet <edumazet@google.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-11-09 9:13 [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Ranganath V N 2025-11-09 9:13 ` [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Ranganath V N @ 2025-11-09 9:13 ` Ranganath V N 2025-11-09 9:31 ` Eric Dumazet 2025-12-12 0:54 ` Vitaly Chikunov 2025-11-10 20:02 ` [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Cong Wang 2025-11-11 14:10 ` patchwork-bot+netdevbpf 3 siblings, 2 replies; 11+ messages in thread From: Ranganath V N @ 2025-11-09 9:13 UTC (permalink / raw) To: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, vnranganath.20, xiyou.wangcong Cc: linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee Fix a KMSAN kernel-infoleak detected by the syzbot . [net?] KMSAN: kernel-infoleak in __skb_datagram_iter In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace. Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied. This change silences the KMSAN report and prevents potential information leaks from the kernel memory. This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak. Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com Fixes: ef6980b6becb ("introduce IFE action") Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> --- net/sched/act_ife.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c index 107c6d83dc5c..7c6975632fc2 100644 --- a/net/sched/act_ife.c +++ b/net/sched/act_ife.c @@ -644,13 +644,15 @@ static int tcf_ife_dump(struct sk_buff *skb, struct tc_action *a, int bind, unsigned char *b = skb_tail_pointer(skb); struct tcf_ife_info *ife = to_ife(a); struct tcf_ife_params *p; - struct tc_ife opt = { - .index = ife->tcf_index, - .refcnt = refcount_read(&ife->tcf_refcnt) - ref, - .bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, - }; + struct tc_ife opt; struct tcf_t t; + memset(&opt, 0, sizeof(opt)); + + opt.index = ife->tcf_index, + opt.refcnt = refcount_read(&ife->tcf_refcnt) - ref, + opt.bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, + spin_lock_bh(&ife->tcf_lock); opt.action = ife->tcf_action; p = rcu_dereference_protected(ife->params, -- 2.43.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-11-09 9:13 ` [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Ranganath V N @ 2025-11-09 9:31 ` Eric Dumazet 2025-12-12 0:54 ` Vitaly Chikunov 1 sibling, 0 replies; 11+ messages in thread From: Eric Dumazet @ 2025-11-09 9:31 UTC (permalink / raw) To: Ranganath V N Cc: davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee On Sun, Nov 9, 2025 at 1:14 AM Ranganath V N <vnranganath.20@gmail.com> wrote: > > Fix a KMSAN kernel-infoleak detected by the syzbot . > > [net?] KMSAN: kernel-infoleak in __skb_datagram_iter > > In tcf_ife_dump(), the variable 'opt' was partially initialized using a > designatied initializer. While the padding bytes are reamined > uninitialized. nla_put() copies the entire structure into a > netlink message, these uninitialized bytes leaked to userspace. > > Initialize the structure with memset before assigning its fields > to ensure all members and padding are cleared prior to beign copied. > > This change silences the KMSAN report and prevents potential information > leaks from the kernel memory. > > This fix has been tested and validated by syzbot. This patch closes the > bug reported at the following syzkaller link and ensures no infoleak. > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Fixes: ef6980b6becb ("introduce IFE action") > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> Reviewed-by: Eric Dumazet <edumazet@google.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-11-09 9:13 ` [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Ranganath V N 2025-11-09 9:31 ` Eric Dumazet @ 2025-12-12 0:54 ` Vitaly Chikunov 2025-12-12 16:26 ` Jamal Hadi Salim 1 sibling, 1 reply; 11+ messages in thread From: Vitaly Chikunov @ 2025-12-12 0:54 UTC (permalink / raw) To: Ranganath V N, linux-rt-devel Cc: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan On Sun, Nov 09, 2025 at 02:43:36PM +0530, Ranganath V N wrote: > Fix a KMSAN kernel-infoleak detected by the syzbot . > > [net?] KMSAN: kernel-infoleak in __skb_datagram_iter > > In tcf_ife_dump(), the variable 'opt' was partially initialized using a > designatied initializer. While the padding bytes are reamined > uninitialized. nla_put() copies the entire structure into a > netlink message, these uninitialized bytes leaked to userspace. > > Initialize the structure with memset before assigning its fields > to ensure all members and padding are cleared prior to beign copied. > > This change silences the KMSAN report and prevents potential information > leaks from the kernel memory. > > This fix has been tested and validated by syzbot. This patch closes the > bug reported at the following syzkaller link and ensures no infoleak. > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > Fixes: ef6980b6becb ("introduce IFE action") > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> > --- > net/sched/act_ife.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c > index 107c6d83dc5c..7c6975632fc2 100644 > --- a/net/sched/act_ife.c > +++ b/net/sched/act_ife.c > @@ -644,13 +644,15 @@ static int tcf_ife_dump(struct sk_buff *skb, struct tc_action *a, int bind, > unsigned char *b = skb_tail_pointer(skb); > struct tcf_ife_info *ife = to_ife(a); > struct tcf_ife_params *p; > - struct tc_ife opt = { > - .index = ife->tcf_index, > - .refcnt = refcount_read(&ife->tcf_refcnt) - ref, > - .bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > - }; > + struct tc_ife opt; > struct tcf_t t; > > + memset(&opt, 0, sizeof(opt)); > + > + opt.index = ife->tcf_index, > + opt.refcnt = refcount_read(&ife->tcf_refcnt) - ref, > + opt.bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, Are you sure this is correct to delimit with commas instead of semicolons? This already causes build failures of 5.10.247-rt141 kernel, because their spin_lock_bh unrolls into do { .. } while (0): CC [M] net/sched/act_ife.o In file included from ./include/linux/spinlock.h:329, from ./include/linux/mmzone.h:8, from ./include/linux/gfp.h:6, from ./include/linux/mm.h:10, from ./include/linux/bvec.h:14, from ./include/linux/skbuff.h:17, from net/sched/act_ife.c:20: net/sched/act_ife.c: In function 'tcf_ife_dump': ./include/linux/spinlock_rt.h:44:2: error: expected expression before 'do' 44 | do { \ | ^~ net/sched/act_ife.c:655:2: note: in expansion of macro 'spin_lock_bh' 655 | spin_lock_bh(&ife->tcf_lock); | ^~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:286: net/sched/act_ife.o] Error 1 make[2]: *** Waiting for unfinished jobs.... Thanks, > + > spin_lock_bh(&ife->tcf_lock); > opt.action = ife->tcf_action; > p = rcu_dereference_protected(ife->params, > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-12-12 0:54 ` Vitaly Chikunov @ 2025-12-12 16:26 ` Jamal Hadi Salim 2025-12-12 16:29 ` Jamal Hadi Salim 0 siblings, 1 reply; 11+ messages in thread From: Jamal Hadi Salim @ 2025-12-12 16:26 UTC (permalink / raw) To: Vitaly Chikunov Cc: Ranganath V N, linux-rt-devel, edumazet, davem, david.hunter.linux, horms, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan On Thu, Dec 11, 2025 at 7:54 PM Vitaly Chikunov <vt@altlinux.org> wrote: > > On Sun, Nov 09, 2025 at 02:43:36PM +0530, Ranganath V N wrote: > > Fix a KMSAN kernel-infoleak detected by the syzbot . > > > > [net?] KMSAN: kernel-infoleak in __skb_datagram_iter > > > > In tcf_ife_dump(), the variable 'opt' was partially initialized using a > > designatied initializer. While the padding bytes are reamined > > uninitialized. nla_put() copies the entire structure into a > > netlink message, these uninitialized bytes leaked to userspace. > > > > Initialize the structure with memset before assigning its fields > > to ensure all members and padding are cleared prior to beign copied. > > > > This change silences the KMSAN report and prevents potential information > > leaks from the kernel memory. > > > > This fix has been tested and validated by syzbot. This patch closes the > > bug reported at the following syzkaller link and ensures no infoleak. > > > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > Fixes: ef6980b6becb ("introduce IFE action") > > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> > > --- > > net/sched/act_ife.c | 12 +++++++----- > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c > > index 107c6d83dc5c..7c6975632fc2 100644 > > --- a/net/sched/act_ife.c > > +++ b/net/sched/act_ife.c > > @@ -644,13 +644,15 @@ static int tcf_ife_dump(struct sk_buff *skb, struct tc_action *a, int bind, > > unsigned char *b = skb_tail_pointer(skb); > > struct tcf_ife_info *ife = to_ife(a); > > struct tcf_ife_params *p; > > - struct tc_ife opt = { > > - .index = ife->tcf_index, > > - .refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > - .bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > - }; > > + struct tc_ife opt; > > struct tcf_t t; > > > > + memset(&opt, 0, sizeof(opt)); > > + > > + opt.index = ife->tcf_index, > > + opt.refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > + opt.bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > Are you sure this is correct to delimit with commas instead of > semicolons? > > This already causes build failures of 5.10.247-rt141 kernel, because > their spin_lock_bh unrolls into do { .. } while (0): > Do you have access to this? commit 205305c028ad986d0649b8b100bab6032dcd1bb5 Author: Chen Ni <nichen@iscas.ac.cn> Date: Wed Nov 12 15:27:09 2025 +0800 net/sched: act_ife: convert comma to semicolon cheers, jamal > CC [M] net/sched/act_ife.o > In file included from ./include/linux/spinlock.h:329, > from ./include/linux/mmzone.h:8, > from ./include/linux/gfp.h:6, > from ./include/linux/mm.h:10, > from ./include/linux/bvec.h:14, > from ./include/linux/skbuff.h:17, > from net/sched/act_ife.c:20: > net/sched/act_ife.c: In function 'tcf_ife_dump': > ./include/linux/spinlock_rt.h:44:2: error: expected expression before 'do' > 44 | do { \ > | ^~ > net/sched/act_ife.c:655:2: note: in expansion of macro 'spin_lock_bh' > 655 | spin_lock_bh(&ife->tcf_lock); > | ^~~~~~~~~~~~ > make[2]: *** [scripts/Makefile.build:286: net/sched/act_ife.o] Error 1 > make[2]: *** Waiting for unfinished jobs.... > > > Thanks, > > > + > > spin_lock_bh(&ife->tcf_lock); > > opt.action = ife->tcf_action; > > p = rcu_dereference_protected(ife->params, > > -- > > 2.43.0 > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-12-12 16:26 ` Jamal Hadi Salim @ 2025-12-12 16:29 ` Jamal Hadi Salim 2025-12-14 21:38 ` Vitaly Chikunov 0 siblings, 1 reply; 11+ messages in thread From: Jamal Hadi Salim @ 2025-12-12 16:29 UTC (permalink / raw) To: Vitaly Chikunov Cc: Ranganath V N, linux-rt-devel, edumazet, davem, david.hunter.linux, horms, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan On Fri, Dec 12, 2025 at 11:26 AM Jamal Hadi Salim <jhs@mojatatu.com> wrote: > > On Thu, Dec 11, 2025 at 7:54 PM Vitaly Chikunov <vt@altlinux.org> wrote: > > > > On Sun, Nov 09, 2025 at 02:43:36PM +0530, Ranganath V N wrote: > > > Fix a KMSAN kernel-infoleak detected by the syzbot . > > > > > > [net?] KMSAN: kernel-infoleak in __skb_datagram_iter > > > > > > In tcf_ife_dump(), the variable 'opt' was partially initialized using a > > > designatied initializer. While the padding bytes are reamined > > > uninitialized. nla_put() copies the entire structure into a > > > netlink message, these uninitialized bytes leaked to userspace. > > > > > > Initialize the structure with memset before assigning its fields > > > to ensure all members and padding are cleared prior to beign copied. > > > > > > This change silences the KMSAN report and prevents potential information > > > leaks from the kernel memory. > > > > > > This fix has been tested and validated by syzbot. This patch closes the > > > bug reported at the following syzkaller link and ensures no infoleak. > > > > > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > > > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > > Fixes: ef6980b6becb ("introduce IFE action") > > > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> > > > --- > > > net/sched/act_ife.c | 12 +++++++----- > > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > > > diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c > > > index 107c6d83dc5c..7c6975632fc2 100644 > > > --- a/net/sched/act_ife.c > > > +++ b/net/sched/act_ife.c > > > @@ -644,13 +644,15 @@ static int tcf_ife_dump(struct sk_buff *skb, struct tc_action *a, int bind, > > > unsigned char *b = skb_tail_pointer(skb); > > > struct tcf_ife_info *ife = to_ife(a); > > > struct tcf_ife_params *p; > > > - struct tc_ife opt = { > > > - .index = ife->tcf_index, > > > - .refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > > - .bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > > - }; > > > + struct tc_ife opt; > > > struct tcf_t t; > > > > > > + memset(&opt, 0, sizeof(opt)); > > > + > > > + opt.index = ife->tcf_index, > > > + opt.refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > > + opt.bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > > > Are you sure this is correct to delimit with commas instead of > > semicolons? > > > > This already causes build failures of 5.10.247-rt141 kernel, because > > their spin_lock_bh unrolls into do { .. } while (0): > > > > Do you have access to this? > commit 205305c028ad986d0649b8b100bab6032dcd1bb5 > Author: Chen Ni <nichen@iscas.ac.cn> > Date: Wed Nov 12 15:27:09 2025 +0800 > > net/sched: act_ife: convert comma to semicolon > Sigh. I see the problem: that patch did not have a Fixes tag; otherwise, it would have been backported. cheers, jamal ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak 2025-12-12 16:29 ` Jamal Hadi Salim @ 2025-12-14 21:38 ` Vitaly Chikunov 0 siblings, 0 replies; 11+ messages in thread From: Vitaly Chikunov @ 2025-12-14 21:38 UTC (permalink / raw) To: Jamal Hadi Salim, Sebastian Andrzej Siewior, Clark Williams, Steven Rostedt Cc: Ranganath V N, linux-rt-devel, edumazet, davem, david.hunter.linux, horms, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan Jamal, and linux-rt-devel, On Fri, Dec 12, 2025 at 11:29:24AM -0500, Jamal Hadi Salim wrote: > On Fri, Dec 12, 2025 at 11:26 AM Jamal Hadi Salim <jhs@mojatatu.com> wrote: > > > > On Thu, Dec 11, 2025 at 7:54 PM Vitaly Chikunov <vt@altlinux.org> wrote: > > > > > > On Sun, Nov 09, 2025 at 02:43:36PM +0530, Ranganath V N wrote: > > > > Fix a KMSAN kernel-infoleak detected by the syzbot . > > > > > > > > [net?] KMSAN: kernel-infoleak in __skb_datagram_iter > > > > > > > > In tcf_ife_dump(), the variable 'opt' was partially initialized using a > > > > designatied initializer. While the padding bytes are reamined > > > > uninitialized. nla_put() copies the entire structure into a > > > > netlink message, these uninitialized bytes leaked to userspace. > > > > > > > > Initialize the structure with memset before assigning its fields > > > > to ensure all members and padding are cleared prior to beign copied. > > > > > > > > This change silences the KMSAN report and prevents potential information > > > > leaks from the kernel memory. > > > > > > > > This fix has been tested and validated by syzbot. This patch closes the > > > > bug reported at the following syzkaller link and ensures no infoleak. > > > > > > > > Reported-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > > > Closes: https://syzkaller.appspot.com/bug?extid=0c85cae3350b7d486aee > > > > Tested-by: syzbot+0c85cae3350b7d486aee@syzkaller.appspotmail.com > > > > Fixes: ef6980b6becb ("introduce IFE action") > > > > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> > > > > --- > > > > net/sched/act_ife.c | 12 +++++++----- > > > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > > > > > diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c > > > > index 107c6d83dc5c..7c6975632fc2 100644 > > > > --- a/net/sched/act_ife.c > > > > +++ b/net/sched/act_ife.c > > > > @@ -644,13 +644,15 @@ static int tcf_ife_dump(struct sk_buff *skb, struct tc_action *a, int bind, > > > > unsigned char *b = skb_tail_pointer(skb); > > > > struct tcf_ife_info *ife = to_ife(a); > > > > struct tcf_ife_params *p; > > > > - struct tc_ife opt = { > > > > - .index = ife->tcf_index, > > > > - .refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > > > - .bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > > > - }; > > > > + struct tc_ife opt; > > > > struct tcf_t t; > > > > > > > > + memset(&opt, 0, sizeof(opt)); > > > > + > > > > + opt.index = ife->tcf_index, > > > > + opt.refcnt = refcount_read(&ife->tcf_refcnt) - ref, > > > > + opt.bindcnt = atomic_read(&ife->tcf_bindcnt) - bind, > > > > > > Are you sure this is correct to delimit with commas instead of > > > semicolons? > > > > > > This already causes build failures of 5.10.247-rt141 kernel, because > > > their spin_lock_bh unrolls into do { .. } while (0): > > > > > > > Do you have access to this? > > commit 205305c028ad986d0649b8b100bab6032dcd1bb5 > > Author: Chen Ni <nichen@iscas.ac.cn> > > Date: Wed Nov 12 15:27:09 2025 +0800 > > > > net/sched: act_ife: convert comma to semicolon > > > > Sigh. I see the problem: that patch did not have a Fixes tag; > otherwise, it would have been backported. Thanks! I will pick this for the local builds. But, perhaps, someone should send it to stable@kernel.org to fix the older -rt kernels too. Thanks, > > cheers, > jamal ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak 2025-11-09 9:13 [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Ranganath V N 2025-11-09 9:13 ` [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Ranganath V N 2025-11-09 9:13 ` [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Ranganath V N @ 2025-11-10 20:02 ` Cong Wang 2025-11-11 14:10 ` patchwork-bot+netdevbpf 3 siblings, 0 replies; 11+ messages in thread From: Cong Wang @ 2025-11-10 20:02 UTC (permalink / raw) To: Ranganath V N Cc: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee On Sun, Nov 09, 2025 at 02:43:34PM +0530, Ranganath V N wrote: > This series addresses the uninitialization of the struct which has > 2 bytes of padding. And copying this uninitialized data to userspace > can leak info from kernel memory. > > This series ensures all members and padding are cleared prior to > begin copied. > > This change silences the KMSAN report and prevents potential information > leaks from the kernel memory. > > Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> Looks good to me too. Acked-by: Cong Wang <xiyou.wangcong@gmail.com> Thanks! ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak 2025-11-09 9:13 [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Ranganath V N ` (2 preceding siblings ...) 2025-11-10 20:02 ` [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Cong Wang @ 2025-11-11 14:10 ` patchwork-bot+netdevbpf 3 siblings, 0 replies; 11+ messages in thread From: patchwork-bot+netdevbpf @ 2025-11-11 14:10 UTC (permalink / raw) To: Ranganath V N Cc: edumazet, davem, david.hunter.linux, horms, jhs, jiri, khalid, kuba, pabeni, xiyou.wangcong, linux-kernel, netdev, skhan, syzbot+0c85cae3350b7d486aee Hello: This series was applied to netdev/net.git (main) by Paolo Abeni <pabeni@redhat.com>: On Sun, 9 Nov 2025 14:43:34 +0530 you wrote: > This series addresses the uninitialization of the struct which has > 2 bytes of padding. And copying this uninitialized data to userspace > can leak info from kernel memory. > > This series ensures all members and padding are cleared prior to > begin copied. > > [...] Here is the summary with links: - [net,v4,1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak https://git.kernel.org/netdev/net/c/62b656e43eae - [net,v4,2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak https://git.kernel.org/netdev/net/c/ce50039be49e You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-12-14 21:38 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-09 9:13 [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Ranganath V N 2025-11-09 9:13 ` [PATCH net v4 1/2] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Ranganath V N 2025-11-09 9:30 ` Eric Dumazet 2025-11-09 9:13 ` [PATCH net v4 2/2] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Ranganath V N 2025-11-09 9:31 ` Eric Dumazet 2025-12-12 0:54 ` Vitaly Chikunov 2025-12-12 16:26 ` Jamal Hadi Salim 2025-12-12 16:29 ` Jamal Hadi Salim 2025-12-14 21:38 ` Vitaly Chikunov 2025-11-10 20:02 ` [PATCH v4 net 0/2] net: sched: initialize struct tc_ife to fix kernel-infoleak Cong Wang 2025-11-11 14:10 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).