In the Linux kernel, the following vulnerability has been resolved:
x86/mm, kexec, ima: Use memblockfreelate() from imafreekexec_buffer()
The code calling imafreekexecbuffer() runs long after the memblock allocator has already been torn down, potentially resulting in a use after free in memblockisolate_range().
With KASAN or KFENCE, this use after free will result in a BUG from the idle task, and a subsequent kernel panic.
Switch imafreekexecbuffer() over to memblockfree_late() to avoid that bug.
[
{
"target": {
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"155335482232278566337047260392833148889",
"55960184061738150841267739157987171102",
"280355060352725358779084664451824000774",
"250688302593431629137374598275236278821",
"320453745305988389071805635994694963132",
"134878664857284971741368834163034726718",
"91296708316647876401211073583354265117",
"107605613525111583308685450329854986851",
"51191748248103771089573139541228979441",
"281347696618412622498777444041884851433"
]
},
"deprecated": false,
"id": "CVE-2023-52576-11fdf1c3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eef16bfdb212da60f5144689f2967fb25b051a2b"
},
{
"target": {
"function": "ima_free_kexec_buffer",
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "314443974195979675713391766300887668354",
"length": 247.0
},
"deprecated": false,
"id": "CVE-2023-52576-35384435",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eef16bfdb212da60f5144689f2967fb25b051a2b"
},
{
"target": {
"function": "ima_free_kexec_buffer",
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "314443974195979675713391766300887668354",
"length": 247.0
},
"deprecated": false,
"id": "CVE-2023-52576-768d4a56",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@34cf99c250d5cd2530b93a57b0de31d3aaf8685b"
},
{
"target": {
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"155335482232278566337047260392833148889",
"55960184061738150841267739157987171102",
"280355060352725358779084664451824000774",
"250688302593431629137374598275236278821",
"320453745305988389071805635994694963132",
"134878664857284971741368834163034726718",
"91296708316647876401211073583354265117",
"107605613525111583308685450329854986851",
"51191748248103771089573139541228979441",
"281347696618412622498777444041884851433"
]
},
"deprecated": false,
"id": "CVE-2023-52576-7efa2d86",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d2dfbc0e3b7a04c2d941421a958dc31c897fb204"
},
{
"target": {
"function": "ima_free_kexec_buffer",
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "314443974195979675713391766300887668354",
"length": 247.0
},
"deprecated": false,
"id": "CVE-2023-52576-da6e5b24",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d2dfbc0e3b7a04c2d941421a958dc31c897fb204"
},
{
"target": {
"file": "arch/x86/kernel/setup.c"
},
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"155335482232278566337047260392833148889",
"55960184061738150841267739157987171102",
"280355060352725358779084664451824000774",
"250688302593431629137374598275236278821",
"320453745305988389071805635994694963132",
"134878664857284971741368834163034726718",
"91296708316647876401211073583354265117",
"107605613525111583308685450329854986851",
"51191748248103771089573139541228979441",
"281347696618412622498777444041884851433"
]
},
"deprecated": false,
"id": "CVE-2023-52576-f17bf513",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@34cf99c250d5cd2530b93a57b0de31d3aaf8685b"
}
]