Vulnerabilidad en Linux (CVE-2026-46290)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
08/06/2026
Última modificación:
23/07/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
x86/efi: Corrección del manejo elegante de fallos después de los cambios en softirq de FPU<br />
<br />
Desde el commit d02198550423 (&#39;x86/fpu: Mejorar el rendimiento criptográfico haciendo que la FPU en modo kernel sea utilizable de forma fiable en softirqs&#39;), kernel_fpu_begin() llama a fpregs_lock() que usa local_bh_disable() en lugar del preempt_disable() anterior. Esto establece SOFTIRQ_OFFSET en preempt_count durante toda la llamada al servicio de tiempo de ejecución de EFI, haciendo que in_interrupt() devuelva verdadero en un contexto de tarea normal.<br />
<br />
El gestor elegante de fallos de página efi_crash_gracefully_on_page_fault() usa in_interrupt() para salir de los fallos en un contexto de interrupción real. Con SOFTIRQ_OFFSET ahora establecido, el gestor siempre sale, dejando los fallos de página del firmware EFI sin manejar. Esto escala a die() que también ve in_interrupt() como verdadero y llama a panic(&#39;Excepción fatal en interrupción&#39;), resultando en una congelación dura del sistema. En sistemas con firmware defectuoso que dispara fallos de página durante las llamadas de tiempo de ejecución de EFI (p. ej., acceder a memoria no mapeada en GetTime()), esto causa un cuelgue irrecuperable en lugar de la recuperación elegante EFI_ABORTED esperada.<br />
<br />
Solución reemplazando in_interrupt() con !in_task(). Esto preserva la intención original de salir por interrupciones o fallos NMI, mientras ya no se dispara falsamente desde el local_bh_disable() de la ruta de código de la FPU.<br />
<br />
[ardb: Sashiko detectó que usar &#39;in_hardirq() || in_nmi()&#39; deja una ventana donde un softirq puede ser tomado antes de que se llame a fpregs_lock(), pero después de que efi_rts_work.efi_rts_id haya sido asignado, y cualquier fallo de página que ocurra en esa ventana será entonces mal identificado como causado por el firmware. En su lugar, use !in_task(), que incorpora in_serving_softirq(). ]
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:*:*:*:*:*:*:*:* | 6.15 (incluyendo) | 6.18.30 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 7.0.7 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



