In the Linux kernel, the following vulnerability has been resolved:
cfi: Fix __cfislowpathdiag RCU usage with cpuidle
RCU_NONIDLE usage during __cfislowpathdiag can result in an invalid RCU state in the cpuidle code path:
WARNING: CPU: 1 PID: 0 at kernel/rcu/tree.c:613 rcueqsenter+0xe4/0x138 ... Call trace: rcueqsenter+0xe4/0x138 rcuidleenter+0xa8/0x100 cpuidleenterstate+0x154/0x3a8 cpuidleenter+0x3c/0x58 doidle.llvm.6590768638138871020+0x1f4/0x2ec cpustartupentry+0x28/0x2c secondarystartkernel+0x1b8/0x220 _secondaryswitched+0x94/0x98
Instead, call rcuirqenter/exit to wake up RCU only when needed and disable interrupts for the entire CFI shadow/module check when we do.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49709.json",
"cna_assigner": "Linux"
}