In the Linux kernel, the following vulnerability has been resolved:
io_uring: check if we need to reschedule during overflow flush
In terms of normal application usage, this list will always be empty. And if an application does overflow a bit, it'll have a few entries. However, nothing obviously prevents syzbot from running a test case that generates a ton of overflow entries, and then flushing them can take quite a while.
Check for needing to reschedule while flushing, and drop our locks and do so if necessary. There's no state to maintain here as overflows always prune from head-of-list, hence it's fine to drop and reacquire the locks at the end of the loop.
[
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"333043592117090743352101316912751734968",
"173694689335794796573222620104446583354",
"284375615272716682947272934126776836620",
"59637711173456894633476195062816776256"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2493904e95ce94bbec819d8f7f03b99976eb25c",
"target": {
"file": "io_uring/io_uring.c"
},
"id": "CVE-2024-50060-08880da2"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"198772966179833963120309697257197115069",
"338663381947393099966751364451056256365",
"114490824246774172152615724983258310822",
"296087269483990804161121114946225590531"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eac2ca2d682f94f46b1973bdf5e77d85d77b8e53",
"target": {
"file": "io_uring/io_uring.c"
},
"id": "CVE-2024-50060-3e198cb6"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"198772966179833963120309697257197115069",
"338663381947393099966751364451056256365",
"114490824246774172152615724983258310822",
"296087269483990804161121114946225590531"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c2eadeafce2d385b3f6d26a7f31fee5aba2bbbb0",
"target": {
"file": "io_uring/io_uring.c"
},
"id": "CVE-2024-50060-5a896e43"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 821.0,
"function_hash": "304683541814010270493450560754071954226"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2493904e95ce94bbec819d8f7f03b99976eb25c",
"target": {
"file": "io_uring/io_uring.c",
"function": "__io_cqring_overflow_flush"
},
"id": "CVE-2024-50060-73a16acf"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 707.0,
"function_hash": "212409679735138801671893482836901232264"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f4ce3b5d26ce149e77e6b8e8f2058aa80e5b034e",
"target": {
"file": "io_uring/io_uring.c",
"function": "__io_cqring_overflow_flush"
},
"id": "CVE-2024-50060-94a8e410"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"38218462245303763585007215690391323832",
"230248429883675698083781980841975550543",
"114490824246774172152615724983258310822",
"296087269483990804161121114946225590531"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f4ce3b5d26ce149e77e6b8e8f2058aa80e5b034e",
"target": {
"file": "io_uring/io_uring.c"
},
"id": "CVE-2024-50060-96291e0e"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 788.0,
"function_hash": "309530380181265701200334869403389385531"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eac2ca2d682f94f46b1973bdf5e77d85d77b8e53",
"target": {
"file": "io_uring/io_uring.c",
"function": "__io_cqring_overflow_flush"
},
"id": "CVE-2024-50060-c7318c94"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 788.0,
"function_hash": "309530380181265701200334869403389385531"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c2eadeafce2d385b3f6d26a7f31fee5aba2bbbb0",
"target": {
"file": "io_uring/io_uring.c",
"function": "__io_cqring_overflow_flush"
},
"id": "CVE-2024-50060-f2931008"
}
]