CVE-2026-98796: net: ethernet: mtk_eth_soc: allocate dummy netdev sooner
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: mtkethsoc: allocate dummy netdev sooner
The RX rings and the shared NAPI are carried by an internal "dummy" netdev (eth->dummydev). mtkprobe() 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 mtkrxalloc() -> xdprxqinforeg() then dereferences eth->dummydev == NULL:
WARNING: CPU: ... Missing netdevice from driver
in net/core/xdp.c and mtkopen() fails with -ENODEV. On NETSYS v1 SoCs (MT7621/MT7622/MT7623/MT7629) there is no page pool, so the same open instead calls napienable() on a napistruct that netifnapiadd() 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 registernetdev() loop. Both the dummy-allocation failure and a registernetdev() failure now unwind through mtkunregdev(), which unregisters the netdevice notifiers and the netdevs registered so far, stopping a concurrently-opened netdev (ndostop) 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->pendingwork before freeing the shared state, as mtkcleanup() already does on remove.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel MediaTek Ethernet driver mtk_eth_soc are affected when a MAC netdev can be brought up before the driver has created its internal dummy netdev and registered shared NAPI. The described failure paths cover NETSYS v2 and later SoCs, as well as NETSYS v1 SoCs including MT7621, MT7622, MT7623, and MT7629.
What condition is required to trigger the failure?
The first MAC network interface must be opened during the probe-time window after MAC netdev registration but before the shared RX/TX NAPI and dummy netdev are initialized. An example is a network-management service opening a WAN interface immediately when it is registered.
What are the observable effects if the issue is triggered?
On NETSYS v2 and later, RX queue registration can encounter a NULL dummy netdev, emit a missing-net_device warning, and cause mtk_open() to fail with -ENODEV. On NETSYS v1, enabling an uninitialized NAPI structure can dereference a NULL napi->dev.