{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-21921", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-29T08:45:45.788Z", "datePublished": "2025-04-01T15:40:55.110Z", "dateUpdated": "2026-05-11T21:09:06.682Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-05-11T21:09:06.682Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethtool: netlink: Allow NULL nlattrs when getting a phy_device\n\nethnl_req_get_phydev() is used to lookup a phy_device, in the case an\nethtool netlink command targets a specific phydev within a netdev's\ntopology.\n\nIt takes as a parameter a const struct nlattr *header that's used for\nerror handling :\n\n if (!phydev) {\n NL_SET_ERR_MSG_ATTR(extack, header,\n \"no phy matching phyindex\");\n return ERR_PTR(-ENODEV);\n }\n\nIn the notify path after a ->set operation however, there's no request\nattributes available.\n\nThe typical callsite for the above function looks like:\n\n\tphydev = ethnl_req_get_phydev(req_base, tb[ETHTOOL_A_XXX_HEADER],\n\t\t\t\t info->extack);\n\nSo, when tb is NULL (such as in the ethnl notify path), we have a nice\ncrash.\n\nIt turns out that there's only the PLCA command that is in that case, as\nthe other phydev-specific commands don't have a notification.\n\nThis commit fixes the crash by passing the cmd index and the nlattr\narray separately, allowing NULL-checking it directly inside the helper." } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/ethtool/cabletest.c", "net/ethtool/linkstate.c", "net/ethtool/netlink.c", "net/ethtool/netlink.h", "net/ethtool/phy.c", "net/ethtool/plca.c", "net/ethtool/pse-pd.c", "net/ethtool/stats.c", "net/ethtool/strset.c" ], "versions": [ { "version": "c15e065b46dc4e19837275b826c1960d55564abd", "lessThan": "639c70352958735addbba5ae7dd65985da96e061", "status": "affected", "versionType": "git" }, { "version": "c15e065b46dc4e19837275b826c1960d55564abd", "lessThan": "1f458fa42c29144cef280e05bc49fc21b873d897", "status": "affected", "versionType": "git" }, { "version": "c15e065b46dc4e19837275b826c1960d55564abd", "lessThan": "637399bf7e77797811adf340090b561a8f9d1213", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/ethtool/cabletest.c", "net/ethtool/linkstate.c", "net/ethtool/netlink.c", "net/ethtool/netlink.h", "net/ethtool/phy.c", "net/ethtool/plca.c", "net/ethtool/pse-pd.c", "net/ethtool/stats.c", "net/ethtool/strset.c" ], "versions": [ { "version": "6.12", "status": "affected" }, { "version": "0", "lessThan": "6.12", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.19", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.13.7", "lessThanOrEqual": "6.13.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.14", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12", "versionEndExcluding": "6.12.19" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12", "versionEndExcluding": "6.13.7" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12", "versionEndExcluding": "6.14" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/639c70352958735addbba5ae7dd65985da96e061" }, { "url": "https://git.kernel.org/stable/c/1f458fa42c29144cef280e05bc49fc21b873d897" }, { "url": "https://git.kernel.org/stable/c/637399bf7e77797811adf340090b561a8f9d1213" } ], "title": "net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device", "x_generator": { "engine": "bippy-1.2.0" } } } }