CVE-2026-53289
Received Received - Intake
NULL Pointer Dereference in Linux Kernel Ice Driver

Publication date: 2026-06-26

Last updated on: 2026-06-26

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: ice: fix NULL pointer dereference in ice_reset_all_vfs() ice_reset_all_vfs() ignores the return value of ice_vf_rebuild_vsi(). When the VSI rebuild fails (e.g. during NVM firmware update via nvmupdate64e), ice_vsi_rebuild() tears down the VSI on its error path, leaving txq_map and rxq_map as NULL. The subsequent unconditional call to ice_vf_post_vsi_rebuild() leads to a NULL pointer dereference in ice_ena_vf_q_mappings() when it accesses vsi->txq_map[0]. The single-VF reset path in ice_reset_vf() already handles this correctly by checking the return value of ice_vf_reconfig_vsi() and skipping ice_vf_post_vsi_rebuild() on failure. Apply the same pattern to ice_reset_all_vfs(): check the return value of ice_vf_rebuild_vsi() and skip ice_vf_post_vsi_rebuild() and ice_eswitch_attach_vf() on failure. The VF is left safely disabled (ICE_VF_STATE_INIT not set, VFGEN_RSTAT not set to VFACTIVE) and can be recovered via a VFLR triggered by a PCI reset of the VF (sysfs reset or driver rebind). Note that this patch does not prevent the VF VSI rebuild from failing during NVM update β€” the underlying cause is firmware being in a transitional state while the EMP reset is processed, which can cause Admin Queue commands (ice_add_vsi, ice_cfg_vsi_lan) to fail. This patch only prevents the subsequent NULL pointer dereference that crashes the kernel when the rebuild does fail. crash> bt PID: 50795 TASK: ff34c9ee708dc680 CPU: 1 COMMAND: "kworker/u512:5" #0 [ff72159bcfe5bb50] machine_kexec at ffffffffaa8850ee #1 [ff72159bcfe5bba8] __crash_kexec at ffffffffaaa15fba #2 [ff72159bcfe5bc68] crash_kexec at ffffffffaaa16540 #3 [ff72159bcfe5bc70] oops_end at ffffffffaa837eda #4 [ff72159bcfe5bc90] page_fault_oops at ffffffffaa893997 #5 [ff72159bcfe5bce8] exc_page_fault at ffffffffab528595 #6 [ff72159bcfe5bd10] asm_exc_page_fault at ffffffffab600bb2 [exception RIP: ice_ena_vf_q_mappings+0x79] RIP: ffffffffc0a85b29 RSP: ff72159bcfe5bdc8 RFLAGS: 00010206 RAX: 00000000000f0000 RBX: ff34c9efc9c00000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000010 RDI: ff34c9efc9c00000 RBP: ff34c9efc27d4828 R8: 0000000000000093 R9: 0000000000000040 R10: ff34c9efc27d4828 R11: 0000000000000040 R12: 0000000000100000 R13: 0000000000000010 R14: R15: ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 #7 [ff72159bcfe5bdf8] ice_sriov_post_vsi_rebuild at ffffffffc0a85e2e [ice] #8 [ff72159bcfe5be08] ice_reset_all_vfs at ffffffffc0a920b4 [ice] #9 [ff72159bcfe5be48] ice_service_task at ffffffffc0a31519 [ice] #10 [ff72159bcfe5be88] process_one_work at ffffffffaa93dca4 #11 [ff72159bcfe5bec8] worker_thread at ffffffffaa93e9de #12 [ff72159bcfe5bf18] kthread at ffffffffaa946663 #13 [ff72159bcfe5bf50] ret_from_fork at ffffffffaa8086b9 The panic occurs attempting to dereference the NULL pointer in RDX at ice_sriov.c:294, which loads vsi->txq_map (offset 0x4b8 in ice_vsi). The faulting VSI is an allocated slab object but not fully initialized after a failed ice_vsi_rebuild(): crash> struct ice_vsi 0xff34c9efc27d4828 netdev = 0x0, rx_rings = 0x0, tx_rings = 0x0, q_vectors = 0x0, txq_map = 0x0, rxq_map = 0x0, alloc_txq = 0x10, num_txq = 0x10, alloc_rxq = 0x10, num_rxq = 0x10, The nvmupdate64e process was performing NVM firmware update: crash> bt 0xff34c9edd1a30000 PID: 49858 TASK: ff34c9edd1a30000 CPU: 1 COMMAND: "nvmupdate64e" #0 [ff72159bcd617618] __schedule at ffffffffab5333f8 #4 [ff72159bcd617750] ice_sq_send_cmd at ffffffffc0a35347 [ice] #5 [ff72159bcd6177a8] ice_sq_send_cmd_retry at ffffffffc0a35b47 [ice] #6 [ff72159bcd617810] ice_aq_send_cmd at ffffffffc0a38018 [ice] #7 [ff72159bcd617848] ice_aq_read_nvm at ffffffffc0a40254 [ice] #8 ---truncated---
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-26
Last Modified
2026-06-26
Generated
2026-06-27
AI Q&A
2026-06-26
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
intel ice *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability exists in the Linux kernel's ice driver, specifically in the function ice_reset_all_vfs(). The function ignores the return value of ice_vf_rebuild_vsi(), which can fail during operations like NVM firmware updates. When the VSI rebuild fails, certain pointers (txq_map and rxq_map) remain NULL. Subsequently, ice_vf_post_vsi_rebuild() is called unconditionally, leading to a NULL pointer dereference in ice_ena_vf_q_mappings() when it tries to access these NULL pointers. This causes a kernel crash.

The issue is that the error path in ice_vsi_rebuild() tears down the VSI but leaves some pointers uninitialized, and the code does not properly check for this failure before proceeding. The patch fixes this by checking the return value of ice_vf_rebuild_vsi() and skipping further calls that would dereference NULL pointers, safely disabling the VF instead of crashing the kernel.

Impact Analysis

This vulnerability can cause the Linux kernel to crash due to a NULL pointer dereference when the ice driver attempts to reset all virtual functions (VFs) after a failed VSI rebuild, such as during a firmware update. A kernel crash leads to system instability and downtime, potentially causing loss of service or data.

Because the VF is left in a disabled state after the failure, recovery requires a PCI reset of the VF, which may involve manual intervention or system reboot, impacting availability.

Detection Guidance

This vulnerability manifests as a NULL pointer dereference in the ice driver during the ice_reset_all_vfs() function, which can cause kernel crashes. Detection would involve monitoring for kernel oops or panic logs related to the ice driver, especially messages indicating a NULL pointer dereference in ice_ena_vf_q_mappings or ice_sriov_post_vsi_rebuild.

Since the crash occurs during or after NVM firmware updates (e.g., via nvmupdate64e), monitoring the system logs for failures or errors during these updates can also help detect the issue.

Specific commands to check for this vulnerability are not provided in the available information.

Mitigation Strategies

The vulnerability is addressed by applying a patch that modifies ice_reset_all_vfs() to check the return value of ice_vf_rebuild_vsi() and skip subsequent calls that lead to the NULL pointer dereference if the rebuild fails.

Until the patch is applied, the VF (Virtual Function) can be safely disabled and recovered via a Virtual Function Level Reset (VFLR) triggered by a PCI reset of the VF, such as through sysfs reset or driver rebind.

Note that the underlying cause of the failure is the firmware being in a transitional state during NVM updates, which can cause Admin Queue commands to fail. The patch prevents kernel crashes but does not prevent the rebuild failure itself.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-53289. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart