Cloudanix VulnDB

CVE-2026-53289

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Jun 26, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A network driver bug can crash a Linux server during certain Intel network adapter reset or firmware update operations, causing service outages.

Exploitation
Local Privilege
Attacker needs
High Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Patch
Effort
Medium
Patch risk
Medium

What it actually does

This flaw is a Linux kernel NULL pointer dereference in the Intel Ethernet Connection E800-series `ice` driver SR-IOV virtual function reset path. When `ice_reset_all_vfs()` attempts to rebuild all virtual function VSIs and `ice_vf_rebuild_vsi()` fails, the driver can leave VSI queue mapping pointers such as `txq_map` and `rxq_map` unset. The vulnerable code then continues into post-rebuild logic and dereferences the NULL queue mapping pointer in `ice_ena_vf_q_mappings()`, causing a kernel oops or panic. The practical technical impact is denial of service of the host kernel, typically during a narrow operational window involving SR-IOV VF reset/rebuild activity and transitional NIC firmware state, such as an NVM firmware update.

Why it matters to the business

A successful trigger can crash affected Linux hosts using the `ice` network driver with SR-IOV virtual functions, interrupting workloads, virtual machines, containers, storage traffic, or network services dependent on those interfaces. Because the issue can occur during firmware maintenance, it can turn planned network adapter updates into unplanned host outages and may extend maintenance windows. The currently provided intelligence indicates low EPSS, no known CISA KEV listing, no ransomware association, and no public exploit maturity, so the primary risk is operational availability rather than broad internet-scale exploitation.

How an attack unfolds

An attacker or operator-controlled process must cause the vulnerable `ice` driver to reset all SR-IOV virtual functions while a VF VSI rebuild fails. One observed path is an NVM firmware update using tooling such as `nvmupdate64e`, where firmware is temporarily in a transitional state and Admin Queue commands used to rebuild/configure VSIs can fail. In the vulnerable kernel, `ice_reset_all_vfs()` does not properly stop after the failed rebuild. It proceeds to post-VSI-rebuild handling, which assumes queue maps are initialized. Because the failed rebuild error path has torn down the VSI and left fields such as `vsi->txq_map` NULL, the driver dereferences a NULL pointer in `ice_ena_vf_q_mappings()`. This causes a kernel page fault and can panic the host. Exploitation is therefore most plausible by a privileged local actor, maintenance process, or management-plane workflow capable of initiating NIC firmware updates, PCI/VF resets, SR-IOV reconfiguration, or driver rebinding on affected systems.

How to fix it

Upgrade to a Linux kernel version or vendor kernel package that includes the upstream fix for `ice_reset_all_vfs()` so the driver checks the return value of `ice_vf_rebuild_vsi()` and skips post-rebuild handling when the rebuild fails. If a fixed kernel is not yet available from the operating system vendor, request the vendor backport for the `ice` driver fix or apply the relevant stable kernel update once released. As interim mitigations, avoid performing NIC NVM firmware updates on affected hosts while SR-IOV VFs are active; disable SR-IOV VFs before firmware maintenance where operationally feasible; migrate workloads away from hosts before NIC firmware updates; and schedule maintenance with rollback and console access. If a VF is left disabled after a failed rebuild, recover it using a VF PCI reset through sysfs or by rebinding the VF driver, rather than forcing repeated all-VF reset operations on an unpatched kernel.

How to confirm the fix worked

Confirm the running kernel contains the patched `ice` driver logic by checking the installed vendor advisory, kernel changelog, or source/package diff for the change in `ice_reset_all_vfs()` that handles `ice_vf_rebuild_vsi()` failure and skips `ice_vf_post_vsi_rebuild()` and `ice_eswitch_attach_vf()` on failure. Validate exposure by identifying systems with the `ice` module loaded and SR-IOV VFs enabled, for example by checking loaded modules, PCI devices, and `sriov_numvfs` values under `/sys/class/net/*/device/`. After patching, perform controlled maintenance testing in a non-production environment with SR-IOV enabled and NIC firmware update/reset workflows to confirm VF rebuild failures no longer produce a kernel oops or panic. Review `dmesg`, `journalctl -k`, crash dumps, and kernel panic records for absence of stack traces involving `ice_reset_all_vfs`, `ice_sriov_post_vsi_rebuild`, or `ice_ena_vf_q_mappings`.

Typical attack path

  1. Identify a Linux host using an affected kernel with the Intel `ice` network driver and SR-IOV virtual functions enabled.
  2. Gain sufficient local, administrative, or management-plane control to trigger NIC firmware update activity, SR-IOV VF reset/rebuild, PCI reset, or driver rebind operations.
  3. Create or wait for a condition where VF VSI rebuild fails, such as during an NVM firmware update while the NIC firmware/Admin Queue is in a transitional state.
  4. Trigger the all-VF reset path through the `ice` service task or related reset workflow.
  5. The vulnerable driver continues into post-rebuild logic despite the failed VSI rebuild.
  6. The driver dereferences a NULL `txq_map` or `rxq_map` pointer in the VF queue-mapping path.
  7. The kernel oopses or panics, causing host-level denial of service and network/workload interruption.

How to detect it

To determine whether this issue was already triggered, review persistent kernel logs, system journals, crash dumps, kdump/vmcore analysis, hypervisor host logs, and maintenance records around NIC firmware updates or SR-IOV reconfiguration events. Key evidence includes a kernel oops or panic with a stack trace containing `ice_ena_vf_q_mappings`, `ice_sriov_post_vsi_rebuild`, `ice_reset_all_vfs`, or `ice_service_task`, especially near execution of `nvmupdate64e` or logs indicating NVM firmware update activity. In `journalctl -k`, `/var/log/kern.log`, `/var/log/messages`, `/var/log/syslog`, and `dmesg` output, look for NULL pointer dereference or page fault messages attributed to the `ice` module. In crash dumps, confirm the faulting instruction path dereferenced `vsi->txq_map` or similar queue mapping state after a failed VSI rebuild. Also correlate with host reboots, watchdog resets, VM/workload outages, link flaps, VF reset events, and PCI driver unbind/rebind actions. There are no reliable remote network indicators for this vulnerability because the observable evidence is primarily local kernel and maintenance-tool artifacts.

  • ice_ena_vf_q_mappings
  • ice_sriov_post_vsi_rebuild
  • ice_reset_all_vfs
  • ice_vf_rebuild_vsi
  • ice_vsi_rebuild
  • ice_service_task
  • BUG: kernel NULL pointer dereference
  • Oops: 0000
  • Unable to handle kernel NULL pointer dereference
  • asm_exc_page_fault
  • page_fault_oops
  • COMMAND: "nvmupdate64e"
  • nvmupdate64e
  • ice_aq_read_nvm
  • ice_aq_send_cmd
  • ice_sq_send_cmd
  • VFGEN_RSTAT
  • VFACTIVE
  • /sys/class/net/*/device/sriov_numvfs
  • /sys/bus/pci/devices/*/reset

What your security team should do

  • Inventory Linux systems using the Intel `ice` driver, especially hosts with SR-IOV enabled for virtualization, NFV, storage, or high-performance networking workloads.
  • Prioritize kernel or vendor driver updates on affected SR-IOV-enabled hosts even though current exploitation signals are low, because the failure mode is a full host crash.
  • Pause or tightly control NIC NVM firmware updates on unpatched hosts; migrate workloads or disable VFs before maintenance where feasible.
  • Ensure crash dump collection, persistent kernel logging, and out-of-band console access are enabled before network adapter firmware maintenance.
  • Create SOC detections for kernel oops/panic traces referencing `ice_ena_vf_q_mappings`, `ice_sriov_post_vsi_rebuild`, `ice_reset_all_vfs`, and concurrent `nvmupdate64e` activity.
  • Document operational recovery steps for disabled VFs, including sysfs PCI reset or driver rebind procedures.
  • Monitor vendor advisories for fixed kernel package versions and apply the relevant stable or enterprise distribution updates when available.

The record

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

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities