CVE-2025-40219 in Linuxinformación

Resumen

por VulDB • 2026-05-29

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

PCI/IOV: Añadir bloqueo de rescaneo-eliminación de PCI al habilitar/deshabilitar SR-IOV

Antes de deshabilitar SR-IOV mediante accesos al espacio de configuración del PF padre, sriov_disable() primero elimina los dispositivos PCI que representan los VFs.

Desde el commit 9d16947b7583 ("PCI: Add global pci_lock_rescan_remove()") estas operaciones de eliminación se serializan frente a eliminaciones y rescaneos concurrentes utilizando pci_rescan_remove_lock. Sin embargo, nunca se añadió ningún bloqueo en sriov_disable(). En particular, cuando el commit 18f9e9d150fc ("PCI/IOV: Factor out sriov_add_vfs()") extrajo la eliminación del dispositivo PCI en sriov_del_vfs(), aún no había ningún bloqueo alrededor de las llamadas a pci_iov_remove_virtfn().

En s390, la falta de serialización en sriov_disable() puede causar una doble eliminación y corrupción de listas, observándose la siguiente traza (enmendada):

PSW: 0704c00180000000 0000000c914e4b38 (klist_put+56) GPRS: 000003800313fb48 0000000000000000 0000000100000001 0000000000000001 00000000f9b520a8 0000000000000000 0000000000002fbd 00000000f4cc9480 0000000000000001 0000000000000000 0000000000000000 0000000180692828 00000000818e8000 000003800313fe2c 000003800313fb48 0000000000000000 CR: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FCR: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FPR: 00000000 00000000 TR: 00000000 PER: 00000000 00000000 00000000 00000000 DA: 0000000000000000 AR: 0000000000000000 IP: 0000000c914e4b38 URES: 0000000000000000 OVE: 0000000000000000 DIB: 0000000000000000 DBA: 0000000000000000 TLB: 0000000000000000 PID: 100 TASK: 00000000f9b520a8[THREAD]
CALL: 0000000c914e4b38 0 [0000000000000000] klist_put+56
1 [0000000000000000] klist_put_rcu+28
2 [0000000000000000] device_release+28
3 [0000000000000000] kobject_put+108
4 [0000000000000000] put_device+20
5 [0000000000000000] pci_stop_and_remove_bus_device+100
6 [0000000000000000] sriov_del_vfs+108
7 [0000000000000000] sriov_disable+100
8 [0000000000000000] pci_sriov_set_num_vf+100
9 [0000000000000000] sriov_store_nvfs+100
10 [0000000000000000] sysfs_kf_write+48
11 [0000000000000000] kernfs_fop_write_iter+140
12 [0000000000000000] vfs_write+140
13 [0000000000000000] ksys_write+80
14 [0000000000000000] __arm64_sys_write+28
15 [0000000000000000] el0_svc_common.constprop.0+100
16 [0000000000000000] do_el0_svc+28
17 [0000000000000000] el0_svc+20

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Reservar

2025-04-16

Divulgación

2025-12-04

Moderación

aceptado

Artículo

VDB-334278

CPE

listo

EPSS

0.00224

KEV

no

Actividades

muy bajo

Fuentes

Do you know our Splunk app?

Download it now for free!