CVE-2026-98796

CVE-2026-98796

published October 18, 2026

CVSS
—
EPSS
0%
Percentile
5.7
In the wild
Unconfirmed
What it is

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. On NETSYS v2 and later SoCs

mtk_rx_alloc() -> __xdp_rxq_info_reg() then dereferences eth->dummy_dev ==

NULL:

WARNING: CPU: ... Missing net_device from driver

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.7th percentile
Published
2026-10-18T20:17Z
References (5)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:48Z
    net: ethernet: mtk_eth_soc: allocate dummy netdev sooner
    cvelistv5
  • 18 OCT 15:48Z
    net: ethernet: mtk_eth_soc: allocate dummy netdev sooner
    cvelistv5