What’s Vulnerable › Vulnerabilities
CVE-2025-21921: net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device
- Severity: medium (CVSS 5.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.2% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2025-04-01 · updated 2026-06-17
- Weakness: CWE-476
Description
In the Linux kernel, the following vulnerability has been resolved: net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device ethnl_req_get_phydev() is used to lookup a phy_device, in the case an ethtool netlink command targets a specific phydev within a netdev's topology. It takes as a parameter a const struct nlattr *header that's used for error handling : if (!phydev) { NL_SET_ERR_MSG_ATTR(extack, header, "no phy matching phyindex"); return ERR_PTR(-ENODEV); } In the notify path after a ->set operation however, there's no request attributes available. The typical callsite for the above function looks like: phydev = ethnl_req_get_phydev(req_base, tb[ETHTOOL_A_XXX_HEADER], info->extack); So, when tb is NULL (such as in the ethnl notify path), we have a nice crash. It turns out that there's only the PLCA command that is in that case, as the other phydev-specific commands don't have a notification. This commit fixes the crash by passing the cmd index and the nlattr array separately, allowing NULL-checking it directly inside the helper.
Affected products
- Linux kernel: from 6.12 before 6.12.19; from 6.13 before 6.13.7; 6.14-rc1, 6.14-rc2, 6.14-rc3, 6.14-rc4, 6.14-rc5 — fixed in 6.12.19, 6.13.7
How to fix
Upgrade to a fixed version: Linux kernel 6.12.19, 6.13.7. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/1f458fa42c29144cef280e05bc49fc21b873d897
- https://git.kernel.org/stable/c/637399bf7e77797811adf340090b561a8f9d1213
- https://git.kernel.org/stable/c/639c70352958735addbba5ae7dd65985da96e061
Get alerted when CVE-2025-21921 or the next vulnerability affects your stack