In the Linux kernel, the following vulnerability has been resolved:
net: nexthop: Initialize all fields in dumped nexthops
struct nexthopgrp contains two reserved fields that are not initialized by nlaputnhgroup(), 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.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9e8f558a3afe99ce51a642ce0d3637ddc2b5d5d0",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"244876621000688070185193862029484539455",
"165032665414971139409389934040625463916"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-03f8210b",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a13d3864b76ac87085ec530b2ff8e37482a63a96",
"deprecated": false,
"digest": {
"function_hash": "9613230772255072595039923637912587023",
"length": 979.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-114be1b1",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7704460acd7f5d35eb07c52500987dc9b95313fb",
"deprecated": false,
"digest": {
"function_hash": "282238141725695747443205709593978812909",
"length": 768.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-20510024",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5cc4d71dda2dd4f1520f40e634a527022e48ccd8",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"252097186081969787846550343496023483175",
"47646171225437926947885638256078867854"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-3a0f5d56",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1377de719652d868f5317ba8398b7e74c5f0430b",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"244876621000688070185193862029484539455",
"165032665414971139409389934040625463916"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-57045b61",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1377de719652d868f5317ba8398b7e74c5f0430b",
"deprecated": false,
"digest": {
"function_hash": "282238141725695747443205709593978812909",
"length": 768.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-5ae2ebb8",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9e8f558a3afe99ce51a642ce0d3637ddc2b5d5d0",
"deprecated": false,
"digest": {
"function_hash": "282238141725695747443205709593978812909",
"length": 768.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-71b9d051",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fd06cb4a5fc7bda3dea31712618a62af72a1c6cb",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"252097186081969787846550343496023483175",
"47646171225437926947885638256078867854"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-7274ca5e",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fd06cb4a5fc7bda3dea31712618a62af72a1c6cb",
"deprecated": false,
"digest": {
"function_hash": "312787985461126802450068152996486960027",
"length": 620.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-77c73d13",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d745cd0e9720282cd291d36b9db528aea18add2",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"244876621000688070185193862029484539455",
"165032665414971139409389934040625463916"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-a0564a30",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7704460acd7f5d35eb07c52500987dc9b95313fb",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"244876621000688070185193862029484539455",
"165032665414971139409389934040625463916"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-eada257d",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a13d3864b76ac87085ec530b2ff8e37482a63a96",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"296347152125331437109229544095828318012",
"101432035988145096846613246217961799208",
"165815113361352477736817462273584387480",
"229633814283420930513612764087044288663",
"244876621000688070185193862029484539455",
"165032665414971139409389934040625463916"
]
},
"signature_version": "v1",
"id": "CVE-2024-42283-f0a12b13",
"signature_type": "Line",
"target": {
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5cc4d71dda2dd4f1520f40e634a527022e48ccd8",
"deprecated": false,
"digest": {
"function_hash": "312787985461126802450068152996486960027",
"length": 620.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-f902f390",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6d745cd0e9720282cd291d36b9db528aea18add2",
"deprecated": false,
"digest": {
"function_hash": "9613230772255072595039923637912587023",
"length": 979.0
},
"signature_version": "v1",
"id": "CVE-2024-42283-fcfe2764",
"signature_type": "Function",
"target": {
"function": "nla_put_nh_group",
"file": "net/ipv4/nexthop.c"
}
}
]