In the Linux kernel, the following vulnerability has been resolved:
net: fix memory leak in tcpconnrequest()
If inetcskreqskqueuehashadd() return false, tcpconnrequest() will return without free the dst memory, which allocated in afops->route_req.
Here is the kmemleak stack:
unreferenced object 0xffff8881198631c0 (size 240): comm "softirq", pid 0, jiffies 4299266571 (age 1802.392s) hex dump (first 32 bytes): 00 10 9b 03 81 88 ff ff 80 98 da bc ff ff ff ff ................ 81 55 18 bb ff ff ff ff 00 00 00 00 00 00 00 00 .U.............. backtrace: [<ffffffffb93e8d4c>] kmemcachealloc+0x60c/0xa80 [<ffffffffba11b4c5>] dstalloc+0x55/0x250 [<ffffffffba227bf6>] rtdst_alloc+0x46/0x1d0 [<ffffffffba23050a>] __mkrouteoutput+0x29a/0xa50 [<ffffffffba23456b>] iprouteoutputkeyhash+0x10b/0x240 [<ffffffffba2346bd>] iprouteoutputflow+0x1d/0x90 [<ffffffffba254855>] inetcskroutereq+0x2c5/0x500 [<ffffffffba26b331>] tcpconnrequest+0x691/0x12c0 [<ffffffffba27bd08>] tcprcvstateprocess+0x3c8/0x11b0 [<ffffffffba2965c6>] tcpv4dorcv+0x156/0x3b0 [<ffffffffba299c98>] tcpv4rcv+0x1cf8/0x1d80 [<ffffffffba239656>] ipprotocoldeliverrcu+0xf6/0x360 [<ffffffffba2399a6>] iplocaldeliverfinish+0xe6/0x1e0 [<ffffffffba239b8e>] iplocaldeliver+0xee/0x360 [<ffffffffba239ead>] iprcv+0xad/0x2f0 [<ffffffffba110943>] __netifreceiveskbonecore+0x123/0x140
Call dstrelease() to free the dst memory when inetcskreqskqueuehashadd() return false in tcpconnrequest().
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/57xxx/CVE-2024-57841.json",
"cna_assigner": "Linux"
}[
{
"deprecated": false,
"id": "CVE-2024-57841-483a037f",
"target": {
"file": "net/ipv4/tcp_input.c",
"function": "tcp_conn_request"
},
"digest": {
"function_hash": "114659606243529913952119829107552837181",
"length": 3206.0
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@de3f999bf8aee16e9da1c1224191abdc69e97c9d"
},
{
"deprecated": false,
"id": "CVE-2024-57841-7ae59745",
"target": {
"file": "net/ipv4/tcp_input.c"
},
"digest": {
"line_hashes": [
"35476430589454895447930882589118206736",
"105531550058982733352556786301445357483",
"239838563904237506878874538180348081560",
"13453558726710665171276145597739617788"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@de3f999bf8aee16e9da1c1224191abdc69e97c9d"
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-57841.json"