CVE-2023-52993

In the Linux kernel, the following vulnerability has been resolved: x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL Baoquan reported that after triggering a crash the subsequent crash-kernel fails to boot about half of the time. It triggers a NULL pointer dereference in the periodic tick code. This happens because the legacy timer interrupt (IRQ0) is resent in software which happens in soft interrupt (tasklet) context. In this context get_irq_regs() returns NULL which leads to the NULL pointer dereference. The reason for the resend is a spurious APIC interrupt on the IRQ0 vector which is captured and leads to a resend when the legacy timer interrupt is enabled. This is wrong because the legacy PIC interrupts are level triggered and therefore should never be resent in software, but nothing ever sets the IRQ_LEVEL flag on those interrupts, so the core code does not know about their trigger type. Ensure that IRQ_LEVEL is set when the legacy PCI interrupts are set up.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc5:*:*:*:*:*:*

History

15 Apr 2025, 14:32

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/0b08201158f177aab469e356b4d6af24fdd118df - () https://git.kernel.org/stable/c/0b08201158f177aab469e356b4d6af24fdd118df - Patch
References () https://git.kernel.org/stable/c/137f1b47da5f58805da42c1b7811e28c1e353f39 - () https://git.kernel.org/stable/c/137f1b47da5f58805da42c1b7811e28c1e353f39 - Patch
References () https://git.kernel.org/stable/c/496975d1a2937f4baadf3d985991b13fc4fc4f27 - () https://git.kernel.org/stable/c/496975d1a2937f4baadf3d985991b13fc4fc4f27 - Patch
References () https://git.kernel.org/stable/c/5fa55950729d0762a787451dc52862c3f850f859 - () https://git.kernel.org/stable/c/5fa55950729d0762a787451dc52862c3f850f859 - Patch
References () https://git.kernel.org/stable/c/744fe9be9665227335539b7a77ece8d9ff62b6c0 - () https://git.kernel.org/stable/c/744fe9be9665227335539b7a77ece8d9ff62b6c0 - Patch
References () https://git.kernel.org/stable/c/8770cd9d7c14aa99c255a0d08186f0be953e1638 - () https://git.kernel.org/stable/c/8770cd9d7c14aa99c255a0d08186f0be953e1638 - Patch
References () https://git.kernel.org/stable/c/e284c273dbb4c1ed68d4204bff94d0b10e4a90f5 - () https://git.kernel.org/stable/c/e284c273dbb4c1ed68d4204bff94d0b10e4a90f5 - Patch
CPE cpe:2.3:o:linux:linux_kernel:6.2:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux linux Kernel
Linux
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/i8259: Marcar interrupciones PIC heredadas con IRQ_LEVEL. Baoquan informó que, tras desencadenar un fallo, el kernel posterior al fallo no arranca aproximadamente la mitad de las veces. Esto desencadena una desreferencia de puntero NULL en el código de tick periódico. Esto sucede porque la interrupción del temporizador heredada (IRQ0) se reenvía por software, lo que ocurre en el contexto de una interrupción suave (tasklet). En este contexto, get_irq_regs() devuelve NULL, lo que provoca la desreferencia de puntero NULL. El motivo del reenvío es una interrupción APIC espuria en el vector IRQ0, que se captura y provoca un reenvío cuando se habilita la interrupción del temporizador heredada. Esto es incorrecto porque las interrupciones PIC heredadas se activan por nivel y, por lo tanto, nunca deberían reenviarse por software; sin embargo, nada activa el indicador IRQ_LEVEL en esas interrupciones, por lo que el código principal desconoce su tipo de activación. Asegúrese de que IRQ_LEVEL esté activado al configurar las interrupciones PCI heredadas.
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE CWE-476

27 Mar 2025, 17:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-03-27 17:15

Updated : 2025-04-15 14:32


NVD link : CVE-2023-52993

Mitre link : CVE-2023-52993

CVE.ORG link : CVE-2023-52993


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference