CVE Database›Document archive›CVE-2025-40091

CVE-2025-40091

kernel: ixgbe: fix too early devlink_free() in ixgbe_remove()

Loading…

Severity

Moderate

Red Hat Product Security

6.4

CVSS 3.1

Review impact separately from score.

Published · October 30, 2025

Updated · June 30, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

ixgbe: fix too early devlink_free() in ixgbe_remove()

Since ixgbe_adapter is embedded in devlink, calling devlink_free() prematurely in the ixgbe_remove() path can lead to UAF. Move devlink_free() to the end.

KASAN report:

BUG: KASAN: use-after-free in ixgbe_reset_interrupt_capability+0x140/0x180 [ixgbe] Read of size 8 at addr ffff0000adf813e0 by task bash/2095 CPU: 1 UID: 0 PID: 2095 Comm: bash Tainted: G S 6.17.0-rc2-tnguy.net-queue+ #1 PREEMPT(full) [...] Call trace: show_stack+0x30/0x90 (C) dump_stack_lvl+0x9c/0xd0 print_address_description.constprop.0+0x90/0x310 print_report+0x104/0x1f0 kasan_report+0x88/0x180 __asan_report_load8_noabort+0x20/0x30 ixgbe_reset_interrupt_capability+0x140/0x180 [ixgbe] ixgbe_clear_interrupt_scheme+0xf8/0x130 [ixgbe] ixgbe_remove+0x2d0/0x8c0 [ixgbe] pci_device_remove+0xa0/0x220 device_remove+0xb8/0x170 device_release_driver_internal+0x318/0x490 device_driver_detach+0x40/0x68 unbind_store+0xec/0x118 drv_attr_store+0x64/0xb8 sysfs_kf_write+0xcc/0x138 kernfs_fop_write_iter+0x294/0x440 new_sync_write+0x1fc/0x588 vfs_write+0x480/0x6a0 ksys_write+0xf0/0x1e0 __arm64_sys_write+0x70/0xc0 invoke_syscall.constprop.0+0xcc/0x280 el0_svc_common.constprop.0+0xa8/0x248 do_el0_svc+0x44/0x68 el0_svc+0x54/0x160 el0t_64_sync_handler+0xa0/0xe8 el0t_64_sync+0x1b0/0x1b8

Statement

The driver called devlink_free() too early during device removal, while other parts of the adapter still accessed the embedded devlink object. This caused a use-after-free crash on device unbind operations (e.g. via sysfs). The fix defers devlink_free() until the very end of ixgbe_remove(), after all cleanup steps have completed. Affects local environments only. Can be triggered by privileged users performing PCI hot-remove or module reload operations. For the CVSS the privilege justification is PR:H, because Triggering the vulnerable ixgbe_remove() path requires administrative privileges (e.g., CAP_SYS_ADMIN) to unbind or unload the network driver (rmmod ixgbe or writing to /sys/bus/pci/drivers/ixgbe/unbind), which is not permitted for unprivileged users by default.

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

No mitigation is specified in collected source.

CVSS / CWE

CVSS 3.1 · 6.4
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H

CWE-416 · Use After Free