{"id":28518,"date":"2026-09-25T00:31:35","date_gmt":"2026-09-24T16:31:35","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93254"},"modified":"2026-09-25T00:31:35","modified_gmt":"2026-09-24T16:31:35","slug":"cve-2026-93254","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93254","title":{"rendered":"CVE-2026-93254 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\narm64: entry: Avoid u"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>arm64: entry: Avoid unnecessary local_irq_disable() on kernel exit<\/p>\n<p>Currently, when exiting to kernel mode, we attempt involuntary<br \/>\npreemption. The preemption logic expects IRQs to be disabled, which is<br \/>\nwhy we call local_irq_disable() before attempting preemption.<\/p>\n<p>However, depending on the context, local_irq_disable() may be<br \/>\nunnecessary:<\/p>\n<p>&#8211; __el1_irq(), the non-NMI EL1 IRQ path, already has IRQs disabled, so<br \/>\n  local_irq_disable() is redundant.<\/p>\n<p>&#8211; irqentry_exit_to_kernel_mode_preempt() immediately returns when<br \/>\n  exiting from an NMI-like context, so calling local_irq_disable()<br \/>\n  beforehand is unnecessary work.<\/p>\n<p>Furthermore, it confuses the pNMI state tracking when we are in a<br \/>\ncontext with interrupts disabled and the GIC_PRIO_PSR_I_SET bit is set<br \/>\nin the PMR, leading to a warning when<br \/>\nCONFIG_ARM64_DEBUG_PRIORITY_MASKING=y:<\/p>\n<p>     WARNING: .\/arch\/arm64\/include\/asm\/irqflags.h:63 at arm64_exit_to_kernel_mode+0xb8\/0xc0, CPU#40: retsnoop\/31805<br \/>\n     CPU: 40 UID: 0 PID: 31805 Comm: retsnoop Not tainted 7.2.0-rc6-next-20260805 #7 PREEMPTLAZY<br \/>\n     pstate: 234013c9 (nzCv DAIF +PAN -UAO +TCO +DIT +SSBS BTYPE=&#8211;)<br \/>\n     pc : arm64_exit_to_kernel_mode (arch\/arm64\/kernel\/entry-common.c:63)<br \/>\n     lr : el1_abort (arch\/arm64\/kernel\/entry-common.c:323)<br \/>\n     pmr: 000000f0<br \/>\n     Call trace:<br \/>\n      arm64_exit_to_kernel_mode (arch\/arm64\/kernel\/entry-common.c:63) (P)<br \/>\n      el1_abort (arch\/arm64\/kernel\/entry-common.c:323)<br \/>\n      el1h_64_sync_handler (arch\/arm64\/kernel\/entry-common.c:449)<br \/>\n      el1h_64_sync (arch\/arm64\/kernel\/entry.S:589)<br \/>\n      [&#8230;]<\/p>\n<p>Split arm64_exit_to_kernel_mode() into preempt, non-preempt, and<br \/>\ndispatch parts so that we can avoid this extra work where it is not<br \/>\nneeded and avoid breaking the pNMI tracking logic.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>arm64: entry: Avoid unnecessary local_irq_disable() on kernel exit<\/p>\n<p>Currently, when exiting to kernel mode, we attempt involuntary<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28518","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}