In the Linux kernel, the following vulnerability has been resolved:
bpf: Preserve param->string when parsing mount options
In bpfparseparam(), keep the value of param->string intact so it can be freed later. Otherwise, the kmalloc area pointed to by param->string will be leaked as shown below:
unreferenced object 0xffff888118c46d20 (size 8): comm "newname", pid 12109, jiffies 4295580214 hex dump (first 8 bytes): 61 6e 79 00 38 c9 5c 7e any.8.\~ backtrace (crc e1b7f876): [<00000000c6848ac7>] kmemleakalloc+0x4b/0x80 [<00000000de9f7d00>] _kmallocnodetrackcallernoprof+0x36e/0x4a0 [<000000003e29b886>] memdupuser+0x32/0xa0 [<0000000007248326>] strndupuser+0x46/0x60 [<0000000035b3dd29>] _x64sysfsconfig+0x368/0x3d0 [<0000000018657927>] x64syscall+0xff/0x9f0 [<00000000c0cabc95>] dosyscall64+0x3b/0xc0 [<000000002f331597>] entrySYSCALL64afterhwframe+0x4b/0x53
[
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 2029.0,
"function_hash": "72720106357122097708330894878075056874"
},
"target": {
"file": "kernel/bpf/inode.c",
"function": "bpf_parse_param"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1f97c03f43fadc407de5b5cb01c07755053e1c22",
"signature_version": "v1",
"id": "CVE-2024-50165-0405541a"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 2029.0,
"function_hash": "72720106357122097708330894878075056874"
},
"target": {
"file": "kernel/bpf/inode.c",
"function": "bpf_parse_param"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5d7a0a426540319327309035509cb768a2f5c2c4",
"signature_version": "v1",
"id": "CVE-2024-50165-66e56bc6"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"297964597982529525630487527046892873429",
"170673021131199120092723815675384244268",
"313537075181027156850418458187178311130",
"183743192806945152643144096882781120487",
"284696533175987177215166180519421199362",
"322553553642934167724919496574742915468",
"176206821943126751552792704945336210172",
"113012474195467293259247899369182212142"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1f97c03f43fadc407de5b5cb01c07755053e1c22",
"signature_version": "v1",
"id": "CVE-2024-50165-98f573e7"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"297964597982529525630487527046892873429",
"170673021131199120092723815675384244268",
"313537075181027156850418458187178311130",
"183743192806945152643144096882781120487",
"284696533175987177215166180519421199362",
"322553553642934167724919496574742915468",
"176206821943126751552792704945336210172",
"113012474195467293259247899369182212142"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5d7a0a426540319327309035509cb768a2f5c2c4",
"signature_version": "v1",
"id": "CVE-2024-50165-d0dd56a5"
}
]