CVE-2023-54160 in Linuxinformación

Resumen

por VulDB • 2026-05-23

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

firmware: arm_sdei: Corregir BUG de llamada a función de suspensión desde contexto no válido

Ejecutar un kernel basado en preempt-rt (v6.2-rc3-rt1) en un procesador Ampere Altra desencadena:

BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46 in_atomic(): 0, irqs_disabled(): 128, non_block: 0, pid: 24, name: cpuhp/0 preempt_count: 0, expected: 0 RCU nest depth: 0, expected: 0 3 locks held by cpuhp/0/24: #0: ffffda30217c70d0 (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x5c/0x248
#1: ffffda30217c7120 (cpuhp_state-up){+.+.}-{0:0}, at: cpuhp_thread_fun+0x5c/0x248
#2: ffffda3021c711f0 (sdei_list_lock){....}-{3:3}, at: sdei_cpuhp_up+0x3c/0x130
irq event stamp: 36 hardirqs last enabled at (35): [<ffffda301e85b7bc>] finish_task_switch+0xb4/0x2b0
hardirqs last disabled at (36): [<ffffda301e812fec>] cpuhp_thread_fun+0x21c/0x248
softirqs last enabled at (0): [<ffffda301e80b184>] copy_process+0x63c/0x1ac0
softirqs last disabled at (0): [<0000000000000000>] 0x0
CPU: 0 PID: 24 Comm: cpuhp/0 Not tainted 5.19.0-rc3-rt5-[...]
Hardware name: WIWYNN Mt.Jade Server [...]
Call trace: dump_backtrace+0x114/0x120 show_stack+0x20/0x70 dump_stack_lvl+0x9c/0xd8 dump_stack+0x18/0x34 __might_resched+0x188/0x228 rt_spin_lock+0x70/0x120 sdei_cpuhp_up+0x3c/0x130 cpuhp_invoke_callback+0x250/0xf08 cpuhp_thread_fun+0x120/0x248 smpboot_thread_fn+0x280/0x320 kthread+0x130/0x140 ret_from_fork+0x10/0x20

sdei_cpuhp_up() se llama en la sección de hotplug STARTING, que se ejecuta con las interrupciones deshabilitadas. Use una entrada CPUHP_AP_ONLINE_DYN en su lugar para ejecutar el cb de cpuhp más tarde, con la preemoción habilitada.

SDEI originalmente obtuvo su propia ranura de cpuhp para permitir interactuar con perf. Fue reemplazado por pNMI y esta ranura temprana ya no es relevante.

Algunas llamadas SDEI (por ejemplo, SDEI_1_0_FN_SDEI_PE_MASK) toman acciones en la CPU de llamada. Se verifica que la preemoción esté deshabilitada para ellas. Las cb de cpuhp _ONLINE se ejecutan en el 'hilo de hotplug por CPU'. La preemoción está habilitada en esos hilos, pero su cpumask está limitada a 1 CPU. Mueve las declaraciones 'WARN_ON_ONCE(preemptible())' para que las cb de cpuhp de SDEI no las activen.

También se agrega una verificación para la llamada SDEI SDEI_1_0_FN_SDEI_PRIVATE_RESET que actúa en la CPU de llamada.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Reservar

2025-12-24

Divulgación

2025-12-24

Moderación

aceptado

Artículo

VDB-338150

CPE

listo

EPSS

0.00179

KEV

no

Actividades

muy bajo

Fuentes

Do you know our Splunk app?

Download it now for free!