In the Linux kernel, the following vulnerability has been resolved:
openvswitch: fix memory leak at failed datapath creation
ovsdpcmdnew()->ovsdpchange()->ovsdpsetupcallportids() allocates array via kmalloc. If for some reason newvport() fails during ovsdpcmdnew() dp->upcallportids must be freed. Add missing kfree.
Kmemleak example: unreferenced object 0xffff88800c382500 (size 64): comm "dumpstate", pid 323, jiffies 4294955418 (age 104.347s) hex dump (first 32 bytes): 5e c2 79 e4 1f 7a 38 c7 09 21 38 0c 80 88 ff ff ^.y..z8..!8..... 03 00 00 00 0a 00 00 00 14 00 00 00 28 00 00 00 ............(... backtrace: [<0000000071bebc9f>] ovsdpsetupcallportids+0x38/0xa0 [<000000000187d8bd>] ovsdpchange+0x63/0xe0 [<000000002397e446>] ovsdpcmdnew+0x1f0/0x380 [<00000000aa06f36e>] genlfamilyrcvmsgdoit+0xea/0x150 [<000000008f583bc4>] genlrcvmsg+0xdc/0x1e0 [<00000000fa10e377>] netlinkrcvskb+0x50/0x100 [<000000004959cece>] genlrcv+0x24/0x40 [<000000004699ac7f>] netlinkunicast+0x23e/0x360 [<00000000c153573e>] netlinksendmsg+0x24e/0x4b0 [<000000006f4aa380>] socksendmsg+0x62/0x70 [<00000000d0068654>] _syssendmsg+0x230/0x270 [<0000000012dacf7d>] syssendmsg+0x88/0xd0 [<0000000011776020>] _syssendmsg+0x59/0xa0 [<000000002e8f2dc1>] dosyscall64+0x3b/0x90 [<000000003243e7cb>] entrySYSCALL64afterhwframe+0x63/0xcd
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49959.json"
}[
{
"deprecated": false,
"id": "CVE-2022-49959-2cd1c7ae",
"digest": {
"line_hashes": [
"22636169646730300340105202148678399154",
"256985636837056689154127836927010809688",
"243687842326769001719479005982290067350",
"127603208141821854382016139567928463922",
"76368517420333627337539756310130837277",
"31766994744558279788810643770557305999",
"78491383127053631064246571327163297909"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c0c1c0241917459644326a1a3102207c871ae159",
"signature_type": "Line",
"target": {
"file": "net/openvswitch/datapath.c"
}
},
{
"deprecated": false,
"id": "CVE-2022-49959-474cd3f6",
"digest": {
"line_hashes": [
"22636169646730300340105202148678399154",
"256985636837056689154127836927010809688",
"243687842326769001719479005982290067350",
"127603208141821854382016139567928463922",
"76368517420333627337539756310130837277",
"31766994744558279788810643770557305999",
"78491383127053631064246571327163297909"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ca54b2bfaab385778e55a9fd33f6c31e7f743b48",
"signature_type": "Line",
"target": {
"file": "net/openvswitch/datapath.c"
}
},
{
"deprecated": false,
"id": "CVE-2022-49959-8ee6bcad",
"digest": {
"function_hash": "14100883715971280128691676190963593220",
"length": 1923.0
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ca54b2bfaab385778e55a9fd33f6c31e7f743b48",
"signature_type": "Function",
"target": {
"file": "net/openvswitch/datapath.c",
"function": "ovs_dp_cmd_new"
}
},
{
"deprecated": false,
"id": "CVE-2022-49959-9c1ad841",
"digest": {
"function_hash": "14100883715971280128691676190963593220",
"length": 1923.0
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c0c1c0241917459644326a1a3102207c871ae159",
"signature_type": "Function",
"target": {
"file": "net/openvswitch/datapath.c",
"function": "ovs_dp_cmd_new"
}
},
{
"deprecated": false,
"id": "CVE-2022-49959-a4e3f59e",
"digest": {
"line_hashes": [
"22636169646730300340105202148678399154",
"256985636837056689154127836927010809688",
"243687842326769001719479005982290067350",
"127603208141821854382016139567928463922",
"76368517420333627337539756310130837277",
"31766994744558279788810643770557305999",
"78491383127053631064246571327163297909"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a87406f4adee9c53b311d8a1ba2849c69e29a6d0",
"signature_type": "Line",
"target": {
"file": "net/openvswitch/datapath.c"
}
},
{
"deprecated": false,
"id": "CVE-2022-49959-be7f11f0",
"digest": {
"function_hash": "14100883715971280128691676190963593220",
"length": 1923.0
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a87406f4adee9c53b311d8a1ba2849c69e29a6d0",
"signature_type": "Function",
"target": {
"file": "net/openvswitch/datapath.c",
"function": "ovs_dp_cmd_new"
}
}
]