Vulnerabilidad en kernel de Linux (CVE-2024-49927)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
21/10/2024
Última modificación:
13/11/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/ioapic: Manejar errores de asignación con elegancia Breno observó pánicos al usar failslab bajo ciertas condiciones durante el tiempo de ejecución: no se puede asignar irq_pin_list (-1,0,20) Pánico del kernel: no se sincroniza: IO-APIC: no se pudo agregar irq-pin. No se puede continuar panic+0x4e9/0x590 mp_irqdomain_alloc+0x9ab/0xa80 irq_domain_alloc_irqs_locked+0x25d/0x8d0 __irq_domain_alloc_irqs+0x80/0x110 mp_map_pin_to_irq+0x645/0x890 acpi_register_gsi_ioapic+0xe6/0x150 hpet_open+0x313/0x480 Ese es un pánico sin sentido que es un remanente del código IO/APIC histórico que entró en pánico durante el arranque temprano cuando falló la asignación de interrupción. El único lugar que podría justificar el pánico es el código timer_check() de PIT/HPET que intenta averiguar si la interrupción del temporizador se entrega a través de IO/APIC. Pero ese código no requiere manejar fallos de asignación de interrupciones. Si no se puede asignar la interrupción, la entrega del temporizador fallo y entra en pánico debido a eso o vuelve al modo heredado. Solucione esto eliminando el contenedor de pánico alrededor de __add_pin_to_irq_node() y haciendo que mp_irqdomain_alloc() sea consciente de la condición de fallo y la maneje como cualquier otra fallo en esta función de manera elegante.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.168 (excluyendo) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.113 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.55 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.10.14 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.11 (incluyendo) | 6.11.3 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/077e1b7cd521163ded545987bbbd389519aeed71
- https://git.kernel.org/stable/c/649a5c2ffae797ce792023a70e84c7fe4b6fb8e0
- https://git.kernel.org/stable/c/830802a0fea8fb39d3dc9fb7d6b5581e1343eb1f
- https://git.kernel.org/stable/c/e479cb835feeb2abff97f25766e23b96a6eabe28
- https://git.kernel.org/stable/c/ec862cd843faa6f0e84a7a07362f2786446bf697
- https://git.kernel.org/stable/c/f17efbeb2922327ea01a9efa8829fea9a30e547d