In the Linux kernel, the following vulnerability has been resolved:
riscv: kexec: Avoid deadlock in kexec crash path
If the kexec crash code is called in the interrupt context, the machinekexecmaskinterrupts() function will trigger a deadlock while trying to acquire the irqdesc spinlock and then deactivate irqchip in irqsetirqchipstate() function.
Unlike arm64, riscv only requires irqeoi handler to complete EOI and keeping irqsetirqchipstate() will only leave this possible deadlock without any use. So we simply remove it.
[
{
"id": "CVE-2024-42140-140f01f3",
"signature_version": "v1",
"digest": {
"length": 507.0,
"function_hash": "169176034035882838993579414547427376546"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c562ba719df570c986caf0941fea2449150bcbc4",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c",
"function": "machine_kexec_mask_interrupts"
}
},
{
"id": "CVE-2024-42140-17cb177e",
"signature_version": "v1",
"digest": {
"length": 507.0,
"function_hash": "169176034035882838993579414547427376546"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@484dd545271d02d1571e1c6b62ea7df9dbe5e692",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c",
"function": "machine_kexec_mask_interrupts"
}
},
{
"id": "CVE-2024-42140-18d7d45f",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"12287403781157497388103825932196276963",
"92800625386876432951072753464340694831",
"97071922566831667185390777976500258515",
"195266004915243940086918100967441859950",
"335552653852874196517149064513059099678",
"93591477897787953198517270421026340709",
"217928041704252024971983438914945341933",
"257435322375125157400906502478478540220",
"280279944459573907249802584475253492148",
"226131093565833947679494513482778082030"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bb80a7911218bbab2a69b5db7d2545643ab0073d",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c"
}
},
{
"id": "CVE-2024-42140-50b76492",
"signature_version": "v1",
"digest": {
"length": 507.0,
"function_hash": "169176034035882838993579414547427376546"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@653deee48a4682ea17a05b96fb6842795ab5943c",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c",
"function": "machine_kexec_mask_interrupts"
}
},
{
"id": "CVE-2024-42140-6181fad3",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"12287403781157497388103825932196276963",
"92800625386876432951072753464340694831",
"97071922566831667185390777976500258515",
"195266004915243940086918100967441859950",
"335552653852874196517149064513059099678",
"93591477897787953198517270421026340709",
"217928041704252024971983438914945341933",
"257435322375125157400906502478478540220",
"280279944459573907249802584475253492148",
"226131093565833947679494513482778082030"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7692c9b6baacdee378435f58f19baf0eb69e4155",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c"
}
},
{
"id": "CVE-2024-42140-636bb000",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"12287403781157497388103825932196276963",
"92800625386876432951072753464340694831",
"97071922566831667185390777976500258515",
"195266004915243940086918100967441859950",
"335552653852874196517149064513059099678",
"93591477897787953198517270421026340709",
"217928041704252024971983438914945341933",
"257435322375125157400906502478478540220",
"280279944459573907249802584475253492148",
"226131093565833947679494513482778082030"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@484dd545271d02d1571e1c6b62ea7df9dbe5e692",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c"
}
},
{
"id": "CVE-2024-42140-80b47c1a",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"12287403781157497388103825932196276963",
"92800625386876432951072753464340694831",
"97071922566831667185390777976500258515",
"195266004915243940086918100967441859950",
"335552653852874196517149064513059099678",
"93591477897787953198517270421026340709",
"217928041704252024971983438914945341933",
"257435322375125157400906502478478540220",
"280279944459573907249802584475253492148",
"226131093565833947679494513482778082030"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c562ba719df570c986caf0941fea2449150bcbc4",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c"
}
},
{
"id": "CVE-2024-42140-9ff220b9",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"12287403781157497388103825932196276963",
"92800625386876432951072753464340694831",
"97071922566831667185390777976500258515",
"195266004915243940086918100967441859950",
"335552653852874196517149064513059099678",
"93591477897787953198517270421026340709",
"217928041704252024971983438914945341933",
"257435322375125157400906502478478540220",
"280279944459573907249802584475253492148",
"226131093565833947679494513482778082030"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@653deee48a4682ea17a05b96fb6842795ab5943c",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c"
}
},
{
"id": "CVE-2024-42140-bf37e57e",
"signature_version": "v1",
"digest": {
"length": 507.0,
"function_hash": "169176034035882838993579414547427376546"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7692c9b6baacdee378435f58f19baf0eb69e4155",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c",
"function": "machine_kexec_mask_interrupts"
}
},
{
"id": "CVE-2024-42140-c05881ce",
"signature_version": "v1",
"digest": {
"length": 507.0,
"function_hash": "169176034035882838993579414547427376546"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bb80a7911218bbab2a69b5db7d2545643ab0073d",
"target": {
"file": "arch/riscv/kernel/machine_kexec.c",
"function": "machine_kexec_mask_interrupts"
}
}
]