Skip to content

Commit a4e6d82

Browse files
committed
net: nexthop: Initialize all fields in dumped nexthops
jira LE-2157 cve CVE-2024-42283 Rebuild_History Non-Buildable kernel-5.14.0-503.14.1.el9_5 commit-author Petr Machata <[email protected]> commit 6d745cd struct nexthop_grp contains two reserved fields that are not initialized by nla_put_nh_group(), and carry garbage. This can be observed e.g. with strace (edited for clarity): # ip nexthop add id 1 dev lo # ip nexthop add id 101 group 1 # strace -e recvmsg ip nexthop get id 101 ... recvmsg(... [{nla_len=12, nla_type=NHA_GROUP}, [{id=1, weight=0, resvd1=0x69, resvd2=0x67}]] ...) = 52 The fields are reserved and therefore not currently used. But as they are, they leak kernel memory, and the fact they are not just zero complicates repurposing of the fields for new ends. Initialize the full structure. Fixes: 430a049 ("nexthop: Add support for nexthop groups") Signed-off-by: Petr Machata <[email protected]> Reviewed-by: Ido Schimmel <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]> (cherry picked from commit 6d745cd) Signed-off-by: Jonathan Maple <[email protected]>
1 parent f77fb9b commit a4e6d82

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

net/ipv4/nexthop.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -676,9 +676,10 @@ static int nla_put_nh_group(struct sk_buff *skb, struct nh_group *nhg)
676676

677677
p = nla_data(nla);
678678
for (i = 0; i < nhg->num_nh; ++i) {
679-
p->id = nhg->nh_entries[i].nh->id;
680-
p->weight = nhg->nh_entries[i].weight - 1;
681-
p += 1;
679+
*p++ = (struct nexthop_grp) {
680+
.id = nhg->nh_entries[i].nh->id,
681+
.weight = nhg->nh_entries[i].weight - 1,
682+
};
682683
}
683684

684685
if (nhg->resilient && nla_put_nh_group_res(skb, nhg))

0 commit comments

Comments
 (0)