In the Linux kernel, the following vulnerability has been resolved:
tick/broadcast: Move per CPU pointer access into the atomic section
The recent fix for making the take over of the broadcast timer more reliable retrieves a per CPU pointer in preemptible context.
This went unnoticed as compilers hoist the access into the non-preemptible region where the pointer is actually used. But of course it's valid that the compiler keeps it at the place where the code puts it which rightfully triggers:
BUG: using smpprocessorid() in preemptible [00000000] code: caller is hotplugcpubroadcasttick_pull+0x1c/0xc0
Move it to the actual usage site which is in a non-preemptible region.
[
{
"id": "CVE-2024-44968-0906a80a",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b9d604933d5fd72dd37f24e1dc35f778297d745a",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-0dda23db",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@541a900d245536d4809cb1aa322c3fcc2cdb58a6",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-56c32e6a",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6881e75237a84093d0986f56223db3724619f26e",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-636ac7a0",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f54abf332a2bc0413cfa8bd6a8511f7aa99faea0",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-656464ed",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7b3ec186ba93e333e9efe7254e7e31c1828e5d2d",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-6f5082fa",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b9d604933d5fd72dd37f24e1dc35f778297d745a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-70e753f6",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@541a900d245536d4809cb1aa322c3fcc2cdb58a6",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-7cc498a3",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7b3ec186ba93e333e9efe7254e7e31c1828e5d2d",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-7e3f1012",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7dd12f85f150010ef7518201c63fa7e395f5c3e9",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-841a29af",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6881e75237a84093d0986f56223db3724619f26e",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-9fad27f2",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f54abf332a2bc0413cfa8bd6a8511f7aa99faea0",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
},
{
"id": "CVE-2024-44968-b06ec143",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@668c6c4a7e9e9f081c06b70f30104fb7013437ed",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-d97c5827",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7dd12f85f150010ef7518201c63fa7e395f5c3e9",
"digest": {
"threshold": 0.9,
"line_hashes": [
"37702907108457331875980422650790729901",
"219026387693034846767331751499584384313",
"114264598086915387596606063633662592476",
"209285647843619653377947151595872244207",
"314967484320818394488722276281677411359",
"135001844065355000172470161263091598707",
"241778601083303188209890054817552132752",
"112710807274271995015362893986567271385"
]
},
"signature_type": "Line",
"target": {
"file": "kernel/time/tick-broadcast.c"
}
},
{
"id": "CVE-2024-44968-f3044a35",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@668c6c4a7e9e9f081c06b70f30104fb7013437ed",
"digest": {
"function_hash": "138030482511863038184613347469245211272",
"length": 454.0
},
"signature_type": "Function",
"target": {
"file": "kernel/time/tick-broadcast.c",
"function": "hotplug_cpu__broadcast_tick_pull"
}
}
]