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

eth: fbnic: reset num_napi when the napi vectors are freed

fbn->num_napi is the count of live napi vectors, each of which owns an
IRQ. The PM path had freed them without clearing the count.
fbnic_pm_suspend() tears the datapath down via ndo_stop() and frees the
IRQs, but leaves netif_running() true so resume knows to re-open. Resume
rebuilds the datapath in __fbnic_pm_resume() and fbnic_reset_queues() sets
num_napi and __fbnic_open() re-allocates the vectors.

When the datapath is torn down but never rebuilt, num_napi is left
pointing at freed vectors under 2 different scenarios:
- a PCIe error recovery that fails (fbnic_err_slot_reset() ->
__fbnic_pm_resume() returns an error -> PCI_ERS_RESULT_DISCONNECT), so
.resume never runs; or
- an __fbnic_open() that fails partway on resume and unwinds, freeing
the vectors after fbnic_reset_queues() has already set num_napi.

The netdev is then running with num_napi > 0 but napi[] freed, and the
eventual remove/unbind close re-enters fbnic_down() -> fbnic_dbg_down()
and dereferences the freed vectors:
BUG: kernel NULL pointer dereference, address: 0000000000000210
RIP: fbnic_dbg_down+0x28

Clear num_napi when the vectors are freed: in the suspend teardown (a
good resume re-establishes it before __fbnic_open()) and on the resume
open failure. A redundant ndo_stop() then walks an empty napi[]. The
normal ndo_stop() down/up cycle is untouched and keeps num_napi for the
next ndo_open().
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Kernel Crash causing Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The fbnic network driver in the Linux kernel contains a flaw where the number of active NAPI vectors is not reset when the vectors are freed during power‑management transitions. This oversight leaves the driver’s napi array pointing at deallocated memory. When the driver later accesses this stale pointer—such as during a device removal, forced suspend/resume cycle, or a failed recovery path—a NULL pointer dereference occurs, crashing the kernel. The crash halts all kernel‑space operations, effectively denying service to the affected system.

Affected Systems

All Linux kernel builds that include the fbnic driver for network interface controllers are potentially affected. No specific version range is listed, so any kernel running this driver before the patch may be at risk.

Risk and Exploitability

The CVSS score is not provided, and EPSS data is unavailable, indicating no publicly documented exploitation. The vulnerability is not listed in CISA KEV, suggesting it has not been widely exploited. The attack vector is likely local, requiring conditions such as a PCIe error recovery failure, a partial resume failure, or explicit device removal. While a public exploit is not known, the kernel crash can be triggered through normal device lifecycle events, making the risk moderate to high for systems that cannot be patched promptly.

Generated by OpenCVE AI on October 18, 2026 at 23:26 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that includes the fbnic NAPI reset patch
  • If immediate patching is not possible, disable power management for the affected network interface or bring the interface down until the kernel is updated
  • Alternatively, temporarily unbind the fbnic NIC from the kernel until the patch is available, e.g., by echoing the device ID to /sys/bus/pci/drivers/fbnic/unbind

Generated by OpenCVE AI on October 18, 2026 at 23:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: eth: fbnic: reset num_napi when the napi vectors are freed fbn->num_napi is the count of live napi vectors, each of which owns an IRQ. The PM path had freed them without clearing the count. fbnic_pm_suspend() tears the datapath down via ndo_stop() and frees the IRQs, but leaves netif_running() true so resume knows to re-open. Resume rebuilds the datapath in __fbnic_pm_resume() and fbnic_reset_queues() sets num_napi and __fbnic_open() re-allocates the vectors. When the datapath is torn down but never rebuilt, num_napi is left pointing at freed vectors under 2 different scenarios: - a PCIe error recovery that fails (fbnic_err_slot_reset() -> __fbnic_pm_resume() returns an error -> PCI_ERS_RESULT_DISCONNECT), so .resume never runs; or - an __fbnic_open() that fails partway on resume and unwinds, freeing the vectors after fbnic_reset_queues() has already set num_napi. The netdev is then running with num_napi > 0 but napi[] freed, and the eventual remove/unbind close re-enters fbnic_down() -> fbnic_dbg_down() and dereferences the freed vectors: BUG: kernel NULL pointer dereference, address: 0000000000000210 RIP: fbnic_dbg_down+0x28 Clear num_napi when the vectors are freed: in the suspend teardown (a good resume re-establishes it before __fbnic_open()) and on the resume open failure. A redundant ndo_stop() then walks an empty napi[]. The normal ndo_stop() down/up cycle is untouched and keeps num_napi for the next ndo_open().
Title eth: fbnic: reset num_napi when the napi vectors are freed
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:19:36.165Z

Reserved: 2026-09-25T10:25:14.360Z

Link: CVE-2026-98616

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:14.497

Modified: 2026-10-18T16:17:14.497

Link: CVE-2026-98616

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T23:30:14Z

Weaknesses