CVE-2025-21883

HIGH

Linux Kernel 6.4-6.6.81, 6.7-6.12.18, 6.13-6.13.6 - Use-After-Free in VF Deinitialization

Title source: llm
STIX 2.1

Description

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).

Scores

CVSS v3 7.8
EPSS 0.0018
EPSS Percentile 7.6%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Details

CWE
CWE-416
Status published
Products (15)
linux/Kernel 6.13.0 - 6.13.6linux
linux/Kernel 6.4.0 - 6.6.81linux
linux/Kernel 6.7.0 - 6.12.18linux
Linux/Linux < 6.4
Linux/Linux 6.12.18 - 6.12.*
Linux/Linux 6.13.6 - 6.13.*
Linux/Linux 6.14
Linux/Linux 6.4
Linux/Linux 6.6.81 - 6.6.*
Linux/Linux 8cd8a6b17d275a45e3722d0215f6115b687c8c3e - 34393fd78d7183a007eaf0090966ebedcc29bd57
... and 5 more
Published Mar 27, 2025
Tracked Since Feb 18, 2026