{"id":"CVE-2022-48754","state":"PUBLISHED","title":"phylib: fix potential use-after-free","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nphylib: fix potential use-after-free\n\nCommit bafbdd527d56 (\"phylib: Add device reset GPIO support\") added call\nto phy_device_reset(phydev) after the put_device() call in phy_detach().\n\nThe comment before the put_device() call says that the phydev might go\naway with put_device().\n\nFix potential use-after-free by calling phy_device_reset() before\nput_device().","publishedAt":"2024-06-20T11:13:34.561Z","updatedAt":"2026-08-05T08:52:08.868Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"67d271760b037ce0806d687ee6057edc8afd4205","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"f39027cbada43b33566c312e6be3db654ca3ad17","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"bd024e36f68174b1793906c39ca16cee0c9295c2","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"aefaccd19379d6c4620269a162bfb88ff687f289","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"cbda1b16687580d5beee38273f6241ae3725960c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/phy/phy_device.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.16","versionType":"semver"},{"version":"4.19.228","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.176","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.96","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.19","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.5","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/phy/phy_device.c"]}],"references":["https://git.kernel.org/stable/c/67d271760b037ce0806d687ee6057edc8afd4205","https://git.kernel.org/stable/c/f39027cbada43b33566c312e6be3db654ca3ad17","https://git.kernel.org/stable/c/bd024e36f68174b1793906c39ca16cee0c9295c2","https://git.kernel.org/stable/c/aefaccd19379d6c4620269a162bfb88ff687f289","https://git.kernel.org/stable/c/cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af","https://git.kernel.org/stable/c/cbda1b16687580d5beee38273f6241ae3725960c"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/48xxx/CVE-2022-48754.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-48754","state":"PUBLISHED","datePublished":"2024-06-20T11:13:34.561Z","dateUpdated":"2026-08-05T08:52:08.868Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-06-20T11:09:39.057Z"},"containers":{"cna":{"title":"phylib: fix potential use-after-free","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nphylib: fix potential use-after-free\n\nCommit bafbdd527d56 (\"phylib: Add device reset GPIO support\") added call\nto phy_device_reset(phydev) after the put_device() call in phy_detach().\n\nThe comment before the put_device() call says that the phydev might go\naway with put_device().\n\nFix potential use-after-free by calling phy_device_reset() before\nput_device()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"67d271760b037ce0806d687ee6057edc8afd4205","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"f39027cbada43b33566c312e6be3db654ca3ad17","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"bd024e36f68174b1793906c39ca16cee0c9295c2","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"aefaccd19379d6c4620269a162bfb88ff687f289","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af","versionType":"git"},{"version":"bafbdd527d569c8200521f2f7579f65a044271be","status":"affected","lessThan":"cbda1b16687580d5beee38273f6241ae3725960c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/phy/phy_device.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.16","versionType":"semver"},{"version":"4.19.228","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.176","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.96","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.19","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.5","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/phy/phy_device.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/67d271760b037ce0806d687ee6057edc8afd4205"},{"url":"https://git.kernel.org/stable/c/f39027cbada43b33566c312e6be3db654ca3ad17"},{"url":"https://git.kernel.org/stable/c/bd024e36f68174b1793906c39ca16cee0c9295c2"},{"url":"https://git.kernel.org/stable/c/aefaccd19379d6c4620269a162bfb88ff687f289"},{"url":"https://git.kernel.org/stable/c/cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af"},{"url":"https://git.kernel.org/stable/c/cbda1b16687580d5beee38273f6241ae3725960c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable path is phy_detach(), reached via local netdev admin (ndo_stop/ifdown → phy_disconnect) or local driver teardown/phylink/SFP paths, not via remotely received packets or protocols.\nAC:L - This is a use-after-free on a code path the attacker can invoke directly; when put_device drops the final reference (the case the surrounding comment and attach refcounting were written for), phy_device_reset() reliably touches freed phydev memory with no additional chance conditions.\nPR:L - Triggering requires CAP_NET_ADMIN to bring down or otherwise detach a PHY-backed interface, which is available to an unprivileged user via user namespaces/containers that have been given such a netdev, not only full init-namespace root.\nUI:N - No separate victim action is required; the attacker who can perform the netdev/driver operation triggers the bug themselves.\nS:U - Impact stays within the local kernel/host authority; this is a standard kernel UAF privilege-escalation class issue, not a VM/sandbox/IOMMU boundary escape.\nC:H - Use-after-free of struct phy_device lets an attacker reclaim and control the object contents, enabling arbitrary kernel read primitives via the subsequent reset_gpio/reset_ctrl use.\nI:H - The same UAF enables heap spraying and corruption of the freed phy_device so that mdio_device_reset()'s gpiod/reset_control calls become arbitrary write/control-flow primitives.\nA:H - Use-after-free of a kernel device object can cause kernel oops/panic even without full exploitation, so availability impact is high."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:52:08.868Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"4.19.228"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"5.4.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"5.10.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"5.15.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"5.16.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16","versionEndExcluding":"5.17"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","affected":[{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"67d271760b03","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"f39027cbada4","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"bd024e36f681","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"aefaccd19379","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"cb2fab10fc5e","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"bafbdd527d56","status":"affected","lessThan":"cbda1b166875","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"4.16","status":"affected"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"0","status":"unaffected","lessThan":"4.16","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"4.19.228","status":"unaffected","lessThanOrEqual":"4.20","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"5.4.176","status":"unaffected","lessThanOrEqual":"5.5","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"5.10.96","status":"unaffected","lessThanOrEqual":"5.11","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"5.15.19","status":"unaffected","lessThanOrEqual":"5.16","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"5.16.5","status":"unaffected","lessThanOrEqual":"5.17","versionType":"custom"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]},{"vendor":"linux","product":"linux_kernel","defaultStatus":"unknown","versions":[{"version":"5.17","status":"unaffected"}],"cpes":["cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":8.4,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"NONE","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2024-06-25T15:12:03.815461Z","id":"CVE-2022-48754","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","type":"CWE","lang":"en","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-06-25T15:26:05.300Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/67d271760b037ce0806d687ee6057edc8afd4205","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/f39027cbada43b33566c312e6be3db654ca3ad17","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/bd024e36f68174b1793906c39ca16cee0c9295c2","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/aefaccd19379d6c4620269a162bfb88ff687f289","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/cbda1b16687580d5beee38273f6241ae3725960c","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-03T15:25:01.127Z"}}]}}}