CVE-2026-93254 in Linux
Sumário
de VulDB • 24/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
arm64: entry: Evitar local_irq_disable() desnecessário na saída para o kernel
Atualmente, ao sair para o modo kernel, tentamos preempção involuntária. A lógica de preempção espera que as IRQs estejam desabilitadas, razão pela qual chamamos local_irq_disable() antes de tentar a preempção.
No entanto, dependendo do contexto, local_irq_disable() pode ser desnecessário:
- __el1_irq(), o caminho de IRQ EL1 não-NMI, já tem as IRQs desabilitadas, então local_irq_disable() é redundante.
- irqentry_exit_to_kernel_mode_preempt() retorna imediatamente ao sair de um contexto semelhante a NMI, portanto, chamar local_irq_disable() previamente é trabalho desnecessário.
Além disso, isso confunde o rastreamento do estado pNMI quando estamos em um contexto com interrupções desabilitadas e o bit GIC_PRIO_PSR_I_SET está definido no PMR, levando a um aviso quando CONFIG_ARM64_DEBUG_PRIORITY_MASKING=y:
WARNING: ./arch/arm64/include/asm/irqflags.h:63 at arm64_exit_to_kernel_mode+0xb8/0xc0, CPU#40: retsnoop/31805 CPU: 40 UID: 0 PID: 31805 Comm: retsnoop Not tainted 7.2.0-rc6-next-20260805 #7 PREEMPTLAZY pstate: 234013c9 (nzCv DAIF +PAN -UAO +TCO +DIT +SSBS BTYPE=--) pc : arm64_exit_to_kernel_mode (arch/arm64/kernel/entry-common.c:63) lr : el1_abort (arch/arm64/kernel/entry-common.c:323) pmr: 000000f0 Call trace: arm64_exit_to_kernel_mode (arch/arm64/kernel/entry-common.c:63) (P) el1_abort (arch/arm64/kernel/entry-common.c:323) el1h_64_sync_handler (arch/arm64/kernel/entry-common.c:449) el1h_64_sync (arch/arm64/kernel/entry.S:589) [...]
Dividir arm64_exit_to_kernel_mode() em partes de preempção, não-preempção e despacho para que possamos evitar esse trabalho extra onde ele não é necessário e evitar quebrar a lógica de rastreamento pNMI.
Once again VulDB remains the best source for vulnerability data.