CVE-2025-21883

In the Linux kernel, the following vulnerability has been resolved: ice: Fix deinitializing VF in error path If ice_ena_vfs() fails after calling ice_create_vf_entries(), it frees all VFs without removing them from snapshot PF-VF mailbox list, leading to list corruption. Reproducer: devlink dev eswitch set $PF1_PCI mode switchdev ip l s $PF1 up ip l s $PF1 promisc on sleep 1 echo 1 > /sys/class/net/$PF1/device/sriov_numvfs sleep 1 echo 1 > /sys/class/net/$PF1/device/sriov_numvfs Trace (minimized): list_add corruption. next->prev should be prev (ffff8882e241c6f0), but was 0000000000000000. (next=ffff888455da1330). kernel BUG at lib/list_debug.c:29! RIP: 0010:__list_add_valid_or_report+0xa6/0x100 ice_mbx_init_vf_info+0xa7/0x180 [ice] ice_initialize_vf_entry+0x1fa/0x250 [ice] ice_sriov_configure+0x8d7/0x1520 [ice] ? __percpu_ref_switch_mode+0x1b1/0x5d0 ? __pfx_ice_sriov_configure+0x10/0x10 [ice] Sometimes a KASAN report can be seen instead with a similar stack trace: BUG: KASAN: use-after-free in __list_add_valid_or_report+0xf1/0x100 VFs are added to this list in ice_mbx_init_vf_info(), but only removed in ice_free_vfs(). Move the removing to ice_free_vf_entries(), which is also being called in other places where VFs are being removed (including ice_free_vfs() itself).
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:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*

History

29 Oct 2025, 16:50

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CWE CWE-416
First Time Linux linux Kernel
Linux
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ice: Se corrige la desinicialización de VF en la ruta de error. Si ice_ena_vfs() falla tras llamar a ice_create_vf_entries(), libera todas las VF sin eliminarlas de la lista de buzones PF-VF de la instantánea, lo que provoca la corrupción de la lista. Reproductor: devlink dev eswitch set $PF1_PCI mode switchdev ip ls $PF1 up ip ls $PF1 promisc on sleep 1 echo 1 > /sys/class/net/$PF1/device/sriov_numvfs sleep 1 echo 1 > /sys/class/net/$PF1/device/sriov_numvfs Rastreo (minimizado): corrupción de list_add. siguiente->anterior debería ser anterior (ffff8882e241c6f0), pero era 0000000000000000. (siguiente=ffff888455da1330). ¡ERROR del núcleo en lib/list_debug.c:29! RIP: 0010:__list_add_valid_or_report+0xa6/0x100 ice_mbx_init_vf_info+0xa7/0x180 [ice] ice_initialize_vf_entry+0x1fa/0x250 [ice] ice_sriov_configure+0x8d7/0x1520 [ice] ? __percpu_ref_switch_mode+0x1b1/0x5d0 ? __pfx_ice_sriov_configure+0x10/0x10 [ice] A veces, un informe de KASAN se puede ver con un seguimiento de pila similar: ERROR: KASAN: use-after-free en __list_add_valid_or_report+0xf1/0x100. Los VF se añaden a esta lista en ice_mbx_init_vf_info(), pero solo se eliminan en ice_free_vfs(). Traslada la eliminación a ice_free_vf_entries(), que también se invoca en otros lugares donde se eliminan VF (incluido el propio ice_free_vfs()).
References () https://git.kernel.org/stable/c/34393fd78d7183a007eaf0090966ebedcc29bd57 - () https://git.kernel.org/stable/c/34393fd78d7183a007eaf0090966ebedcc29bd57 - Patch
References () https://git.kernel.org/stable/c/3c01102bec9592928e6b155da41cfcd5d25a2066 - () https://git.kernel.org/stable/c/3c01102bec9592928e6b155da41cfcd5d25a2066 - Patch
References () https://git.kernel.org/stable/c/79990cf5e7aded76d0c092c9f5ed31eb1c75e02c - () https://git.kernel.org/stable/c/79990cf5e7aded76d0c092c9f5ed31eb1c75e02c - Patch
References () https://git.kernel.org/stable/c/a4880583f88deba63504ce1c8287a70d39c01378 - () https://git.kernel.org/stable/c/a4880583f88deba63504ce1c8287a70d39c01378 - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8

27 Mar 2025, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-03-27 15:15

Updated : 2025-10-29 16:50


NVD link : CVE-2025-21883

Mitre link : CVE-2025-21883

CVE.ORG link : CVE-2025-21883


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free