CVE-2025-21883
N/A
Summary
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).
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 8cd8a6b17d275a45e3722d0215f6115b687c8c3e < 3c01102bec9592928e6b155da41cfcd5d25a2066 | affected |
| Linux | Linux | 8cd8a6b17d275a45e3722d0215f6115b687c8c3e < a4880583f88deba63504ce1c8287a70d39c01378 | affected |
| Linux | Linux | 8cd8a6b17d275a45e3722d0215f6115b687c8c3e < 34393fd78d7183a007eaf0090966ebedcc29bd57 | affected |
| Linux | Linux | 8cd8a6b17d275a45e3722d0215f6115b687c8c3e < 79990cf5e7aded76d0c092c9f5ed31eb1c75e02c | affected |
| Linux | Linux | 6.4 | affected |
| Linux | Linux | 0 < 6.4 | unaffected |
| Linux | Linux | 6.6.81 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.18 <= 6.12.* | unaffected |
| Linux | Linux | 6.13.6 <= 6.13.* | unaffected |
| Linux | Linux | 6.14 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/3c01102bec9592928e6b155da41cfcd5d25a2066
- https://git.kernel.org/stable/c/a4880583f88deba63504ce1c8287a70d39c01378
- https://git.kernel.org/stable/c/34393fd78d7183a007eaf0090966ebedcc29bd57
- https://git.kernel.org/stable/c/79990cf5e7aded76d0c092c9f5ed31eb1c75e02c
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.