{"id":41268,"date":"2026-10-19T00:32:55","date_gmt":"2026-10-18T16:32:55","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98796"},"modified":"2026-10-19T00:32:55","modified_gmt":"2026-10-18T16:32:55","slug":"cve-2026-98796","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98796","title":{"rendered":"CVE-2026-98796 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_et"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: ethernet: mtk_eth_soc: allocate dummy netdev sooner<\/p>\n<p>The RX rings and the shared NAPI are carried by an internal &#8220;dummy&#8221; netdev<br \/>\n(eth-&gt;dummy_dev). mtk_probe() creates that dummy device, and adds the<br \/>\nshared tx\/rx NAPI to it, only after the MAC netdevs have been registered.<br \/>\nThat order has been there since the MT7623 support was added and leaves a<br \/>\nwindow in which the netdevs are visible to the network core before the<br \/>\nshared NAPI and the dummy device exist.<\/p>\n<p>If anything brings the first netdev up during that window (e.g. netifd<br \/>\nopening the WAN link the instant the interface is registered), the<br \/>\nfirst-open path runs without them. On NETSYS v2 and later SoCs<br \/>\nmtk_rx_alloc() -&gt; __xdp_rxq_info_reg() then dereferences eth-&gt;dummy_dev ==<br \/>\nNULL:<\/p>\n<p>  WARNING: CPU: &#8230; Missing net_device from driver<\/p>\n<p>in net\/core\/xdp.c and mtk_open() fails with -ENODEV. On NETSYS v1 SoCs<br \/>\n(MT7621\/MT7622\/MT7623\/MT7629) there is no page pool, so the same open<br \/>\ninstead calls napi_enable() on a napi_struct that netif_napi_add() has not<br \/>\ninitialised yet and dereferences a NULL napi-&gt;dev.<\/p>\n<p>Allocate the dummy netdev and add the shared tx\/rx NAPI to it before the<br \/>\nregister_netdev() loop. Both the dummy-allocation failure and a<br \/>\nregister_netdev() failure now unwind through mtk_unreg_dev(), which<br \/>\nunregisters the net_device notifiers and the netdevs registered so far,<br \/>\nstopping a concurrently-opened netdev (ndo_stop) and its NAPI before the<br \/>\ndummy carrier is freed.<\/p>\n<p>A netdev that opened during the window can also have queued the<br \/>\nframe-engine reset worker (via the tx watchdog or phylink), so the probe<br \/>\nerror path now cancels eth-&gt;pending_work before freeing the shared state,<br \/>\nas mtk_cleanup() already does on remove.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: ethernet: mtk_eth_soc: allocate dummy netdev sooner<\/p>\n<p>The RX rings and the shared NAPI are carried by an internal &#8220;dummy&#8221; netde<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41268","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}