In the Linux kernel, the following vulnerability has been resolved:
io_uring/sqpoll: work around a potential audit memory leak
kmemleak complains that there's a memory leak related to connect handling:
unreferenced object 0xffff0001093bdf00 (size 128): comm "iou-sqp-455", pid 457, jiffies 4294894164 hex dump (first 32 bytes): 02 00 fa ea 7f 00 00 01 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace (crc 2e481b1a): [<00000000c0a26af4>] kmemleakalloc+0x30/0x38 [<000000009c30bb45>] kmalloctrace+0x228/0x358 [<000000009da9d39f>] _auditsockaddr+0xd0/0x138 [<0000000089a93e34>] moveaddrtokernel+0x1a0/0x1f8 [<000000000b4e80e6>] ioconnectprep+0x1ec/0x2d4 [<00000000abfbcd99>] iosubmitsqes+0x588/0x1e48 [<00000000e7c25e07>] iosqthread+0x8a4/0x10e4 [<00000000d999b491>] retfrom_fork+0x10/0x20
which can can happen if:
1) The command type does something on the prep side that triggers an audit call. 2) The thread hasn't done any operations before this that triggered an audit call inside ->issue(), where we have audituringentry() and audituringexit().
Work around this by issuing a blanket NOP operation before the SQPOLL does anything.
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 2082.0,
"function_hash": "210195746573962010366089600112215352303"
},
"id": "CVE-2024-41001-08466f09",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55c22375cbaa24f77dd13f9ae0642915444a1227",
"target": {
"file": "io_uring/sqpoll.c",
"function": "io_sq_thread"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 2416.0,
"function_hash": "173329875249938356175882596346647340058"
},
"id": "CVE-2024-41001-14de134c",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c4ce0ab27646f4206a9eb502d6fe45cb080e1cae",
"target": {
"file": "io_uring/sqpoll.c",
"function": "io_sq_thread"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 2178.0,
"function_hash": "24243315863690109988473851607449151634"
},
"id": "CVE-2024-41001-4b716aa8",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9e810bd995823786ea30543e480e8a573e5e5667",
"target": {
"file": "io_uring/sqpoll.c",
"function": "io_sq_thread"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"317667075174678838757338632762342523923",
"26061568838527988822844725917544091212",
"338825692361647646899660588413161289695"
]
},
"id": "CVE-2024-41001-60cdfce0",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9e810bd995823786ea30543e480e8a573e5e5667",
"target": {
"file": "io_uring/sqpoll.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"317667075174678838757338632762342523923",
"26061568838527988822844725917544091212",
"338825692361647646899660588413161289695"
]
},
"id": "CVE-2024-41001-aa507908",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c4ce0ab27646f4206a9eb502d6fe45cb080e1cae",
"target": {
"file": "io_uring/sqpoll.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"240520149395308429508518595331341830968",
"248750646962432291686562321616992107314",
"188069142268420575874195984770514036320"
]
},
"id": "CVE-2024-41001-f77d6239",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55c22375cbaa24f77dd13f9ae0642915444a1227",
"target": {
"file": "io_uring/sqpoll.c"
}
}
]