---
id: "CVE-2026-99200"
kind: "vulnerability"
aliases: ["CVE-2026-99200"]
title: "Linux kernel: hisi_femac driver crashes on probe with NULL netdev_ops"
severity: "low"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["embedded", "hisilicon-soc", "linux-kernel", "runtime"]
not_affected_if: ["net-shaper-disabled", "no-hisi-femac-hardware"]
published_at: "2026-10-28T11:17:41+00:00"
first_seen_at: "2026-10-28T11:32:37+00:00"
updated_at: "2026-10-28T11:34:03+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-99200", "first_seen_at": "2026-10-28T11:32:37+00:00"}]
---

# Linux kernel: hisi_femac driver crashes on probe with NULL netdev_ops

In the Linux kernel's HiSilicon hisi_femac Ethernet driver, the PHY is attached before the net device operations are assigned, so probing the device dereferences a NULL pointer when CONFIG_NET_SHAPER is enabled. The result is a kernel panic at boot or driver load, a denial of service rather than code execution.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the hisi_femac driver is in use: `lsmod | grep hisi_femac` or `dmesg | grep -i femac`
- Check whether CONFIG_NET_SHAPER is enabled: `grep CONFIG_NET_SHAPER /boot/config-$(uname -r)`
- Check the running kernel version: `uname -r`

## Fix

- Move to a Linux kernel release that includes the upstream fix (assigning netdev_ops before the PHY attach, as in the emac fix commit 7c9f391ec89c); exact fixed version: unknown
- Until patched, avoid enabling CONFIG_NET_SHAPER on hardware using hisi_femac

## Timeline

- 2026-10-28T11:32:37+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-99200

## From the sources

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

net: hisilicon: hisi_femac: Move setting of netops to fix crash

hisi_femac_drv_probe() connects the PHY before dev->netdev_ops is
assigned. phy_attach_direct() -> phy_link_topo_add_phy() reads
dev->netdev_ops through netdev_need_ops_lock() since the commit in
question, so probing crashes with a NULL pointer dereference when
CONFIG_NET_SHAPER is enabled.

  phy_link_topo_add_phy from phy_attach_direct+0xec/0x37c
  of_phy_get_and_connect from hisi_femac_drv_probe+0x1f4/0x558
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Assign netdev_ops before the PHY attach, as was done for emac in commit
7c9f391ec89c ("net: emac: move setting of netops to fix crash").

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
