CVE Catalog

CVE-2026-98796

Low risk· EPSS 6%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

6th percentile - higher than 6% of all known CVEs

Summary

In the Linux kernel, the mtk_eth_soc driver registers MAC netdevs before allocating the internal dummy netdev and shared NAPI. If an interface is brought up during that window (e.g., by netifd immediately after registration), the first-open path dereferences NULL (eth->dummy_dev or napi->dev), causing a warning in net/core/xdp.c and failing with -ENODEV. The fix allocates the dummy netdev and adds the NAPI before the register_netdev() loop and improves error unwinding.

Risk Assessment

The vulnerability can cause errors and failures during network interface initialization on MediaTek SoC devices (NETSYS v1 and v2+), leading to network unavailability. However, it requires local access to interface configuration at a critical moment, so the risk is limited to environments where interfaces are automatically brought up during system boot.

Recommendation

Update the Linux kernel to a version containing the fix for the mtk_eth_soc driver. If updating is not possible, consider delaying automatic network interface bring-up until the driver is fully initialized.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS