CVE-2026-53289: Linux ice Driver NULL Pointer Dereference During VF Reset
A flaw in the Linux kernel's ice network driver can cause the system to crash when resetting all virtual functions (VFs) during firmware updates. The driver fails to properly check whether a critical rebuild operation succeeded, then proceeds to access memory structures that were never initialized, resulting in a NULL pointer dereference. The crash occurs in kernel code, affecting systems running affected kernel versions with ice-based network hardware.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-476
- Affected products
- 2 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-07-08
NVD description (verbatim)
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---
6 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53289 is a NULL pointer dereference in the ice driver's ice_reset_all_vfs() function. When ice_vf_rebuild_vsi() fails (commonly during NVM firmware updates via nvmupdate64e), the VSI's txq_map and rxq_map remain NULL after the error path tears down the VSI structure. The function ignores this failure and unconditionally calls ice_vf_post_vsi_rebuild(), which subsequently calls ice_ena_vf_q_mappings() and dereferences vsi->txq_map[0], triggering a page fault and kernel panic. The single-VF reset path (ice_reset_vf()) already handles this correctly by checking the return value and skipping the problematic call; the all-VF path was missing this defensive check. The fix applies the same pattern: verify the rebuild succeeded before proceeding with post-rebuild configuration.
Business impact
This vulnerability causes kernel panics on systems with ice-based NICs during VF resets, particularly during firmware update operations using nvmupdate64e. The crashes render the affected system unavailable until rebooted, impacting production workloads relying on these network interfaces or virtualization features. Organizations performing firmware maintenance face potential unplanned downtime. Systems not performing VF resets or firmware updates are not exposed to this trigger.
Affected systems
The vulnerability affects the Linux kernel (all versions prior to the fix commit). Specifically impacted are systems running ice network driver with SR-IOV capable Intel network hardware where virtual functions are in use or where NVM firmware updates are performed. The crash manifestation requires the specific condition of a VSI rebuild failure during an all-VF reset operation.
Exploitability
This is not a privilege escalation or information disclosure vulnerability. It is a reliability/availability issue requiring local access and specific operational conditions (NVM firmware update via nvmupdate64e triggering an all-VF reset while VSI rebuild fails). The vulnerability cannot be exploited remotely. Exploitation requires administrative capabilities to perform firmware updates or trigger VF resets, and the crash is deterministic only when the underlying VSI rebuild fails, which occurs during firmware transitions.
Remediation
Apply a kernel update incorporating the fix, which adds proper error handling to ice_reset_all_vfs(). The patch checks the return value of ice_vf_rebuild_vsi() and skips ice_vf_post_vsi_rebuild() and ice_eswitch_attach_vf() calls on failure, leaving the VF in a safely disabled state. VFs can then be recovered via VFLR (Virtual Function Level Reset) triggered by PCI reset or driver rebind. Verify the specific kernel version containing this commit against your distribution's advisory.
Patch guidance
Obtain the patched kernel version from your Linux distribution. The fix involves adding a conditional check around the post-VSI-rebuild operations in ice_reset_all_vfs(). Most major distributions will backport this to their supported kernel branches. Check your vendor's security advisories for the specific patched version numbers. After patching, reboot affected systems to load the fixed kernel.
Detection guidance
Monitor kernel logs (dmesg, journalctl) for page fault panics in ice_ena_vf_q_mappings() or general Oops messages during NVM firmware update operations or when ice driver performs VF resets. Systems experiencing unplanned reboots during firmware maintenance with ice-based NICs may be affected. The crash stack trace will include ice_reset_all_vfs -> ice_sriov_post_vsi_rebuild -> ice_ena_vf_q_mappings. Collect kernel crash dumps if kdump is configured to preserve evidence for analysis.
Why prioritize this
Assign medium priority. The CVSS score of 5.5 reflects local availability impact only. However, the crash occurs in a predictable scenario (firmware updates), affects production systems unexpectedly, and may be triggered during routine maintenance. Organizations performing NVM updates on ice-based hardware should patch before next scheduled update windows. Systems without SR-IOV or VF usage can defer patching if no firmware updates are planned.
Risk score, explained
The CVSS v3.1 score of 5.5 (MEDIUM) is assigned: AV:L (local only), AC:L (low complexity), PR:L (low privilege required—administrative firmware update capability), UI:N (no user interaction), S:U (no scope change), C:N (no confidentiality impact), I:N (no integrity impact), A:H (high availability impact via kernel crash). The lack of remote exploitability and requirement for administrative operations keep the score in the medium range despite the severe local impact.
Frequently asked questions
Will this crash affect my system if I'm not using SR-IOV or virtual functions?
No. The vulnerability is triggered during all-VF reset operations, which occur only when SR-IOV virtual functions are in use. Systems without VF configurations are not exposed to the crash path.
Why does the crash happen specifically during firmware updates?
Firmware updates via nvmupdate64e trigger Admin Queue commands (ice_add_vsi, ice_cfg_vsi_lan) while the firmware is in a transitional state. These commands can fail during an EMP reset, causing ice_vf_rebuild_vsi() to fail. The unfixed code ignores this failure and proceeds to access uninitialized memory.
What happens to my virtual functions after the patch is applied?
After the patch, if a VSI rebuild fails, the affected VF is left in a safely disabled state (not activated) rather than crashing the host kernel. The VF can be recovered via a VFLR triggered by PCI reset (sysfs reset or driver rebind).
Do I need to take any action if I'm on a patched kernel already?
No. Verify your running kernel includes this fix (available in Linux kernel versions after June 2026 for the ice driver). If your distribution has already released a patched kernel, simply ensure you're running the latest stable version for your branch.
This analysis is based on the vulnerability description and CVSS assessment provided as of July 8, 2026. Patch version numbers and specific distribution releases have not been included; verify the availability of fixes against your vendor's official security advisory. This vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog. No public exploit code exists as of the publication date. Organizations should validate their exposure based on hardware configuration, kernel version, and operational practices before prioritizing patching. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2026-46118MEDIUMLinux Kernel PAPR Hypervisor Pipe Null Pointer Dereference (POWER Systems)
- CVE-2026-46127MEDIUMLinux Kernel OCRDMA Null Pointer Dereference (DoS)
- CVE-2026-46134MEDIUMLinux Kernel cros_ec Mutex Initialization DoS Vulnerability
- CVE-2026-46188MEDIUMLinux Octeon EP VF NULL Pointer Dereference Denial of Service
- CVE-2026-46211MEDIUMLinux Kernel MSM DRM NULL Pointer and Silent Error in gem_info_get_metadata
- CVE-2026-46216MEDIUMLinux Intel Arc GPU NULL Pointer Dereference (HDCP)
- CVE-2026-46222MEDIUMLinux Rockchip RKCam Driver Null Pointer Dereference