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.
{ "vanir_signatures": [ { "id": "CVE-2024-42140-140f01f3", "signature_type": "Function", "digest": { "function_hash": "169176034035882838993579414547427376546", "length": 507.0 }, "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" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-17cb177e", "signature_type": "Function", "digest": { "function_hash": "169176034035882838993579414547427376546", "length": 507.0 }, "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" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-18d7d45f", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "12287403781157497388103825932196276963", "92800625386876432951072753464340694831", "97071922566831667185390777976500258515", "195266004915243940086918100967441859950", "335552653852874196517149064513059099678", "93591477897787953198517270421026340709", "217928041704252024971983438914945341933", "257435322375125157400906502478478540220", "280279944459573907249802584475253492148", "226131093565833947679494513482778082030" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bb80a7911218bbab2a69b5db7d2545643ab0073d", "target": { "file": "arch/riscv/kernel/machine_kexec.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-50b76492", "signature_type": "Function", "digest": { "function_hash": "169176034035882838993579414547427376546", "length": 507.0 }, "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" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-6181fad3", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "12287403781157497388103825932196276963", "92800625386876432951072753464340694831", "97071922566831667185390777976500258515", "195266004915243940086918100967441859950", "335552653852874196517149064513059099678", "93591477897787953198517270421026340709", "217928041704252024971983438914945341933", "257435322375125157400906502478478540220", "280279944459573907249802584475253492148", "226131093565833947679494513482778082030" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7692c9b6baacdee378435f58f19baf0eb69e4155", "target": { "file": "arch/riscv/kernel/machine_kexec.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-636bb000", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "12287403781157497388103825932196276963", "92800625386876432951072753464340694831", "97071922566831667185390777976500258515", "195266004915243940086918100967441859950", "335552653852874196517149064513059099678", "93591477897787953198517270421026340709", "217928041704252024971983438914945341933", "257435322375125157400906502478478540220", "280279944459573907249802584475253492148", "226131093565833947679494513482778082030" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@484dd545271d02d1571e1c6b62ea7df9dbe5e692", "target": { "file": "arch/riscv/kernel/machine_kexec.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-80b47c1a", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "12287403781157497388103825932196276963", "92800625386876432951072753464340694831", "97071922566831667185390777976500258515", "195266004915243940086918100967441859950", "335552653852874196517149064513059099678", "93591477897787953198517270421026340709", "217928041704252024971983438914945341933", "257435322375125157400906502478478540220", "280279944459573907249802584475253492148", "226131093565833947679494513482778082030" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c562ba719df570c986caf0941fea2449150bcbc4", "target": { "file": "arch/riscv/kernel/machine_kexec.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-9ff220b9", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "12287403781157497388103825932196276963", "92800625386876432951072753464340694831", "97071922566831667185390777976500258515", "195266004915243940086918100967441859950", "335552653852874196517149064513059099678", "93591477897787953198517270421026340709", "217928041704252024971983438914945341933", "257435322375125157400906502478478540220", "280279944459573907249802584475253492148", "226131093565833947679494513482778082030" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@653deee48a4682ea17a05b96fb6842795ab5943c", "target": { "file": "arch/riscv/kernel/machine_kexec.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-bf37e57e", "signature_type": "Function", "digest": { "function_hash": "169176034035882838993579414547427376546", "length": 507.0 }, "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" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-42140-c05881ce", "signature_type": "Function", "digest": { "function_hash": "169176034035882838993579414547427376546", "length": 507.0 }, "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" }, "deprecated": false, "signature_version": "v1" } ] }