{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.2.9-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  eth: fbnic: reset num_napi when the napi vectors are freed  fbn-\u003enum_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() -\u003e    __fbnic_pm_resume() returns an error -\u003e 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 \u003e 0 but napi[] freed, and the eventual remove/unbind close re-enters fbnic_down() -\u003e 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().",
  "id": "DEBIAN-CVE-2026-98616",
  "modified": "2026-10-19T04:47:31.366157142Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-98616"
    }
  ],
  "upstream": [
    "CVE-2026-98616"
  ]
}