CVE-2026-98796

Status: ReceivedUnscored—
Severity—Unscored
Exploitation probability0.17 %higher than 6% of CVEs
Active exploitationNonot in the CISA catalog
Public exploitNot knownno public code found

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

net: ethernet: mtk_eth_soc: allocate dummy netdev sooner

The RX rings and the shared NAPI are carried by an internal "dummy" netdev (eth->dummy_dev). mtk_probe() creates that dummy device, and adds the shared tx/rx NAPI to it, only after the MAC netdevs have been registered. That order has been there since the MT7623 support was added and leaves a window in which the netdevs are visible to the network core before the shared NAPI and the dummy device exist.

If anything brings the first netdev up during that window (e.g. netifd opening the WAN link the instant the interface is registered), the first-open path runs without them.

Read full descriptionShow less

On NETSYS v2 and later SoCs mtk_rx_alloc() -> __xdp_rxq_info_reg() then dereferences eth->dummy_dev == NULL:

in net/core/xdp.c and mtk_open() fails with -ENODEV. On NETSYS v1 SoCs (MT7621/MT7622/MT7623/MT7629) there is no page pool, so the same open instead calls napi_enable() on a napi_struct that netif_napi_add() has not initialised yet and dereferences a NULL napi->dev.

Allocate the dummy netdev and add the shared tx/rx NAPI to it before the register_netdev() loop. Both the dummy-allocation failure and a register_netdev() failure now unwind through mtk_unreg_dev(), which unregisters the net_device notifiers and the netdevs registered so far, stopping a concurrently-opened netdev (ndo_stop) and its NAPI before the dummy carrier is freed.

A netdev that opened during the window can also have queued the frame-engine reset worker (via the tx watchdog or phylink), so the probe error path now cancels eth->pending_work before freeing the shared state, as mtk_cleanup() already does on remove.

Technical details traces, logs and code from the original report
  WARNING: CPU: ... Missing net_device from driver

CVSS

NVD hasn't assigned a CVSS score to this CVE (common since the April 2026 policy change).

Exploitation probability (EPSS)

Probability of exploitation in the next 30 days
0.17 %
Percentile among all scored CVEs
6
Score date
10/20/2026

EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).

Affected technologies (1)

⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.

References

Show 4 references

Raw JSON (NVD)

Show
{
  "id": "CVE-2026-98796",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "42001839e425b2564b7297be579073a13a8fddf6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "82be3d08de9e14d5aed72377f051adb4f09fd540",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "17eafd74de5a31e30361420a2e3ebf64186b77e5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "6f0c2c4f5e7143eba75153ecc8af3a03f7b6a98b",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/net/ethernet/mediatek/mtk_eth_soc.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.6"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "4.6",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.12.113",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.56",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.10",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/net/ethernet/mediatek/mtk_eth_soc.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:33.583",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/17eafd74de5a31e30361420a2e3ebf64186b77e5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/42001839e425b2564b7297be579073a13a8fddf6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/6f0c2c4f5e7143eba75153ecc8af3a03f7b6a98b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/82be3d08de9e14d5aed72377f051adb4f09fd540",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_eth_soc: allocate dummy netdev sooner\n\nThe RX rings and the shared NAPI are carried by an internal \"dummy\" netdev\n(eth->dummy_dev). mtk_probe() creates that dummy device, and adds the\nshared tx/rx NAPI to it, only after the MAC netdevs have been registered.\nThat order has been there since the MT7623 support was added and leaves a\nwindow in which the netdevs are visible to the network core before the\nshared NAPI and the dummy device exist.\n\nIf anything brings the first netdev up during that window (e.g. netifd\nopening the WAN link the instant the interface is registered), the\nfirst-open path runs without them. On NETSYS v2 and later SoCs\nmtk_rx_alloc() -> __xdp_rxq_info_reg() then dereferences eth->dummy_dev ==\nNULL:\n\n  WARNING: CPU: ... Missing net_device from driver\n\nin net/core/xdp.c and mtk_open() fails with -ENODEV. On NETSYS v1 SoCs\n(MT7621/MT7622/MT7623/MT7629) there is no page pool, so the same open\ninstead calls napi_enable() on a napi_struct that netif_napi_add() has not\ninitialised yet and dereferences a NULL napi->dev.\n\nAllocate the dummy netdev and add the shared tx/rx NAPI to it before the\nregister_netdev() loop. Both the dummy-allocation failure and a\nregister_netdev() failure now unwind through mtk_unreg_dev(), which\nunregisters the net_device notifiers and the netdevs registered so far,\nstopping a concurrently-opened netdev (ndo_stop) and its NAPI before the\ndummy carrier is freed.\n\nA netdev that opened during the window can also have queued the\nframe-engine reset worker (via the tx watchdog or phylink), so the probe\nerror path now cancels eth->pending_work before freeing the shared state,\nas mtk_cleanup() already does on remove."
    }
  ],
  "lastModified": "2026-10-19T10:19:43.607",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}