Skip to content

Commit 62b656e

Browse files
ranganathvnPaolo Abeni
authored andcommitted
net: sched: act_connmark: initialize struct tc_ife to fix kernel leak
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: 22a5dc0 ("net: sched: Introduce connmark action") Signed-off-by: Ranganath V N <vnranganath.20@gmail.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20251109091336.9277-2-vnranganath.20@gmail.com Acked-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent 60e6489 commit 62b656e

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

net/sched/act_connmark.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,15 @@ static inline int tcf_connmark_dump(struct sk_buff *skb, struct tc_action *a,
195195
const struct tcf_connmark_info *ci = to_connmark(a);
196196
unsigned char *b = skb_tail_pointer(skb);
197197
const struct tcf_connmark_parms *parms;
198-
struct tc_connmark opt = {
199-
.index = ci->tcf_index,
200-
.refcnt = refcount_read(&ci->tcf_refcnt) - ref,
201-
.bindcnt = atomic_read(&ci->tcf_bindcnt) - bind,
202-
};
198+
struct tc_connmark opt;
203199
struct tcf_t t;
204200

201+
memset(&opt, 0, sizeof(opt));
202+
203+
opt.index = ci->tcf_index;
204+
opt.refcnt = refcount_read(&ci->tcf_refcnt) - ref;
205+
opt.bindcnt = atomic_read(&ci->tcf_bindcnt) - bind;
206+
205207
rcu_read_lock();
206208
parms = rcu_dereference(ci->parms);
207209

0 commit comments

Comments
 (0)