In the Linux kernel, the following vulnerability has been resolved:
tracing: kprobe: Fix memory leak in testgenkprobe/kretprobe_cmd()
testgenkprobecmd() only free buf in fail path, hence buf will leak when there is no failure. Move kfree(buf) from fail path to common path to prevent the memleak. The same reason and solution in testgenkretprobecmd().
unreferenced object 0xffff888143b14000 (size 2048): comm "insmod", pid 52490, jiffies 4301890980 (age 40.553s) hex dump (first 32 bytes): 70 3a 6b 70 72 6f 62 65 73 2f 67 65 6e 5f 6b 70 p:kprobes/genkp 72 6f 62 65 5f 74 65 73 74 20 64 6f 5f 73 79 73 robetest dosys backtrace: [<000000006d7b836b>] kmalloctrace+0x27/0xa0 [<0000000009528b5b>] 0xffffffffa059006f [<000000008408b580>] dooneinitcall+0x87/0x2a0 [<00000000c4980a7e>] doinitmodule+0xdf/0x320 [<00000000d775aad0>] loadmodule+0x3006/0x3390 [<00000000e9a74b80>] _dosysfinitmodule+0x113/0x1b0 [<000000003726480d>] dosyscall64+0x35/0x80 [<000000003441e93b>] entrySYSCALL64after_hwframe+0x46/0xb0
[
{
"id": "CVE-2022-49891-053ba9a3",
"target": {
"function": "test_gen_kretprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 798.0,
"function_hash": "115525732381021573568177353319485876024"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71aeb8d01a8c7ab5cf7da3f81b35206f56ce6bca",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-056127b3",
"target": {
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"line_hashes": [
"133575757203024953368776055158904505394",
"112265394703825248418464793129130066749",
"261449692660750141279632763297153343316",
"184888323460573823652886664846323522645",
"30483191923767126998133947988833684699",
"171194003407490118530098966929832448139",
"266935613626291711409057836681274056579",
"40827172224367942283620921691136587152",
"284494807643238827661261199082634720046",
"253289972445440124627130515968111532758",
"31329521163471712587838183889032357206",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"28098006389849060194660472046554820565",
"129807323437738808481910187336132950711",
"143398700893202993123371822027372703367",
"171988911989429456902547379322191253006",
"71895368279000599404494126591526211151",
"116126847601312585286687986525717814912",
"56109598796586156082491820084957357243",
"241859191257610940853920163279665086571",
"57994691459228186944071029177572704808",
"283243691293919685399444313732993855153",
"70561550704064884337494612920812558939",
"164757767554932665084302466332924009816",
"308628451436439393651852920897112479992",
"55646427598052649435026558403169391316",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"4148447566718598677290360172784664484",
"243128003061920340338085697636064174760",
"125562195481552851514481067771904898657",
"132537334570706641508922791443063012496",
"71895368279000599404494126591526211151",
"169832746520933519808716457987163679588"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bef08acbe560a926b4cee9cc46404cc98ae5703b",
"signature_type": "Line"
},
{
"id": "CVE-2022-49891-1c8e5388",
"target": {
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"line_hashes": [
"133575757203024953368776055158904505394",
"112265394703825248418464793129130066749",
"261449692660750141279632763297153343316",
"184888323460573823652886664846323522645",
"30483191923767126998133947988833684699",
"171194003407490118530098966929832448139",
"266935613626291711409057836681274056579",
"40827172224367942283620921691136587152",
"284494807643238827661261199082634720046",
"253289972445440124627130515968111532758",
"31329521163471712587838183889032357206",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"28098006389849060194660472046554820565",
"129807323437738808481910187336132950711",
"143398700893202993123371822027372703367",
"171988911989429456902547379322191253006",
"71895368279000599404494126591526211151",
"116126847601312585286687986525717814912",
"56109598796586156082491820084957357243",
"241859191257610940853920163279665086571",
"57994691459228186944071029177572704808",
"283243691293919685399444313732993855153",
"70561550704064884337494612920812558939",
"164757767554932665084302466332924009816",
"308628451436439393651852920897112479992",
"55646427598052649435026558403169391316",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"4148447566718598677290360172784664484",
"243128003061920340338085697636064174760",
"125562195481552851514481067771904898657",
"132537334570706641508922791443063012496",
"71895368279000599404494126591526211151",
"169832746520933519808716457987163679588"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66f0919c953ef7b55e5ab94389a013da2ce80a2c",
"signature_type": "Line"
},
{
"id": "CVE-2022-49891-22748812",
"target": {
"function": "test_gen_kretprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 798.0,
"function_hash": "115525732381021573568177353319485876024"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bef08acbe560a926b4cee9cc46404cc98ae5703b",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-2fcd26de",
"target": {
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"line_hashes": [
"133575757203024953368776055158904505394",
"112265394703825248418464793129130066749",
"261449692660750141279632763297153343316",
"184888323460573823652886664846323522645",
"30483191923767126998133947988833684699",
"171194003407490118530098966929832448139",
"266935613626291711409057836681274056579",
"40827172224367942283620921691136587152",
"284494807643238827661261199082634720046",
"253289972445440124627130515968111532758",
"31329521163471712587838183889032357206",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"28098006389849060194660472046554820565",
"129807323437738808481910187336132950711",
"143398700893202993123371822027372703367",
"171988911989429456902547379322191253006",
"71895368279000599404494126591526211151",
"116126847601312585286687986525717814912",
"56109598796586156082491820084957357243",
"241859191257610940853920163279665086571",
"57994691459228186944071029177572704808",
"283243691293919685399444313732993855153",
"70561550704064884337494612920812558939",
"164757767554932665084302466332924009816",
"308628451436439393651852920897112479992",
"55646427598052649435026558403169391316",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"4148447566718598677290360172784664484",
"243128003061920340338085697636064174760",
"125562195481552851514481067771904898657",
"132537334570706641508922791443063012496",
"71895368279000599404494126591526211151",
"169832746520933519808716457987163679588"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d1b6a8e3414aeaa0985139180c145d2d0fbd2a49",
"signature_type": "Line"
},
{
"id": "CVE-2022-49891-32215a61",
"target": {
"function": "test_gen_kprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 901.0,
"function_hash": "179857330569898078300281711537832764643"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66f0919c953ef7b55e5ab94389a013da2ce80a2c",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-4f82728b",
"target": {
"function": "test_gen_kprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 901.0,
"function_hash": "179857330569898078300281711537832764643"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d1b6a8e3414aeaa0985139180c145d2d0fbd2a49",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-73f12ba5",
"target": {
"function": "test_gen_kretprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 798.0,
"function_hash": "115525732381021573568177353319485876024"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66f0919c953ef7b55e5ab94389a013da2ce80a2c",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-81f499d8",
"target": {
"function": "test_gen_kprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 901.0,
"function_hash": "179857330569898078300281711537832764643"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bef08acbe560a926b4cee9cc46404cc98ae5703b",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-e07de033",
"target": {
"function": "test_gen_kretprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 798.0,
"function_hash": "115525732381021573568177353319485876024"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d1b6a8e3414aeaa0985139180c145d2d0fbd2a49",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-e5e12472",
"target": {
"function": "test_gen_kprobe_cmd",
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"length": 901.0,
"function_hash": "179857330569898078300281711537832764643"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71aeb8d01a8c7ab5cf7da3f81b35206f56ce6bca",
"signature_type": "Function"
},
{
"id": "CVE-2022-49891-fcf6fd7a",
"target": {
"file": "kernel/trace/kprobe_event_gen_test.c"
},
"digest": {
"line_hashes": [
"133575757203024953368776055158904505394",
"112265394703825248418464793129130066749",
"261449692660750141279632763297153343316",
"184888323460573823652886664846323522645",
"30483191923767126998133947988833684699",
"171194003407490118530098966929832448139",
"266935613626291711409057836681274056579",
"40827172224367942283620921691136587152",
"284494807643238827661261199082634720046",
"253289972445440124627130515968111532758",
"31329521163471712587838183889032357206",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"28098006389849060194660472046554820565",
"129807323437738808481910187336132950711",
"143398700893202993123371822027372703367",
"171988911989429456902547379322191253006",
"71895368279000599404494126591526211151",
"116126847601312585286687986525717814912",
"56109598796586156082491820084957357243",
"241859191257610940853920163279665086571",
"57994691459228186944071029177572704808",
"283243691293919685399444313732993855153",
"70561550704064884337494612920812558939",
"164757767554932665084302466332924009816",
"308628451436439393651852920897112479992",
"55646427598052649435026558403169391316",
"76302324451240614261234476338796679114",
"72810546491386270709879769402292067929",
"4148447566718598677290360172784664484",
"243128003061920340338085697636064174760",
"125562195481552851514481067771904898657",
"132537334570706641508922791443063012496",
"71895368279000599404494126591526211151",
"169832746520933519808716457987163679588"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71aeb8d01a8c7ab5cf7da3f81b35206f56ce6bca",
"signature_type": "Line"
}
]