In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_fq: fix integer overflow of "credit"
if schfq is configured with "initial quantum" having values greater than INTMAX, the first assignment of "credit" does signed integer overflow to a very negative value. In this situation, the syzkaller script provided by Cristoph triggers the CPU soft-lockup warning even with few sockets. It's not an infinite loop, but "credit" wasn't probably meant to be minus 2Gb for each new flow. Capping "initial quantum" to INT_MAX proved to fix the issue.
v2: validation of "initial quantum" is done in fqpolicy, instead of open coding in fqchange() _ suggested by Jakub Kicinski
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4fbefeab88c6e79753a25099d455d3d59d2946b4",
"id": "CVE-2023-53624-3ddc2747",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85f24cb2f10b2b0f2882e5786a09b4790bb3a0ad",
"id": "CVE-2023-53624-3f073310",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2322462d6f9ad4874f4e3c63df3b5cc00cb1acbd",
"id": "CVE-2023-53624-87eb44c1",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4b8a05e3801661a0438fcd0cdef181030d966a5a",
"id": "CVE-2023-53624-9d8f4868",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d0b43125ec892aeb1b03e5df5aab595097da225a",
"id": "CVE-2023-53624-c20dfac8",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7041101ff6c3073fd8f2e99920f535b111c929cb",
"id": "CVE-2023-53624-f4acd968",
"deprecated": false,
"target": {
"file": "net/sched/sch_fq.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"232710675026797825330689880088049494299",
"166614303439951213216109912150880011966",
"107470141468810890846919194390111916259",
"255120173229313351037183177835878465956",
"15480643697007341924660029818145337593",
"80048036028292703911646007697922283964",
"288502711271656088487661631647673981249",
"263276922335795534209097279834010614371",
"103206273218989104915653782244851239258"
]
},
"signature_type": "Line"
}
]