{"api_version":"1","generated_at":"2026-10-21T12:07:30+00:00","cve":"CVE-2026-98564","urls":{"html":"https://cve.report/CVE-2026-98564","api":"https://cve.report/api/cve/CVE-2026-98564.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-98564","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-98564"},"summary":{"title":"net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq\n\nmt7530_remove_common() disposes the per-PHY interrupt mappings from\n.remove, but the regmap-irq chip that owns the domain is devm-registered,\nso its parent interrupt is only freed once .remove has returned. The\nswitch's own regmap-irq thread can therefore still dispatch on a mapping\nthat is already gone: irq_find_mapping() returns 0, irq_to_desc() returns\nNULL and handle_nested_irq() locks desc->lock without checking it. The\nattached PHYs have not given those interrupts back yet either, which the\nkernel warns about a moment before the fault.\n\nregmap_del_irq_chip() disposes the same mappings itself, after freeing the\nparent interrupt and before removing the domain, so there is nothing left\nfor the driver to do here. Until it runs the descriptors stay alive, and a\nlate dispatch on one of them is harmless: dsa_unregister_switch() has freed\nthe PHY handlers by then, so handle_nested_irq() finds no action and\nreturns.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-18 16:17:08","updated_at":"2026-10-18 16:17:08"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/0d80ba0a204c6a16bd7778b50de578dff107c0fe","name":"https://git.kernel.org/stable/c/0d80ba0a204c6a16bd7778b50de578dff107c0fe","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2357c682f6eaf639dec88c68b3c0c93a3b802635","name":"https://git.kernel.org/stable/c/2357c682f6eaf639dec88c68b3c0c93a3b802635","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8","name":"https://git.kernel.org/stable/c/f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98564","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98564","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 254f6b272e3b67bf31c42ee9da62a449d74d1478 2357c682f6eaf639dec88c68b3c0c93a3b802635 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 254f6b272e3b67bf31c42ee9da62a449d74d1478 f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 254f6b272e3b67bf31c42ee9da62a449d74d1478 0d80ba0a204c6a16bd7778b50de578dff107c0fe git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.15","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.15 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.55 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.9 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc5 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/net/dsa/mt7530.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"2357c682f6eaf639dec88c68b3c0c93a3b802635","status":"affected","version":"254f6b272e3b67bf31c42ee9da62a449d74d1478","versionType":"git"},{"lessThan":"f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8","status":"affected","version":"254f6b272e3b67bf31c42ee9da62a449d74d1478","versionType":"git"},{"lessThan":"0d80ba0a204c6a16bd7778b50de578dff107c0fe","status":"affected","version":"254f6b272e3b67bf31c42ee9da62a449d74d1478","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/net/dsa/mt7530.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.15"},{"lessThan":"6.15","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.55","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.9","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc5","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.55","versionStartIncluding":"6.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.9","versionStartIncluding":"6.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc5","versionStartIncluding":"6.15","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq\n\nmt7530_remove_common() disposes the per-PHY interrupt mappings from\n.remove, but the regmap-irq chip that owns the domain is devm-registered,\nso its parent interrupt is only freed once .remove has returned. The\nswitch's own regmap-irq thread can therefore still dispatch on a mapping\nthat is already gone: irq_find_mapping() returns 0, irq_to_desc() returns\nNULL and handle_nested_irq() locks desc->lock without checking it. The\nattached PHYs have not given those interrupts back yet either, which the\nkernel warns about a moment before the fault.\n\nregmap_del_irq_chip() disposes the same mappings itself, after freeing the\nparent interrupt and before removing the domain, so there is nothing left\nfor the driver to do here. Until it runs the descriptors stay alive, and a\nlate dispatch on one of them is harmless: dsa_unregister_switch() has freed\nthe PHY handlers by then, so handle_nested_irq() finds no action and\nreturns."}],"providerMetadata":{"dateUpdated":"2026-10-18T15:18:31.044Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/2357c682f6eaf639dec88c68b3c0c93a3b802635"},{"url":"https://git.kernel.org/stable/c/f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8"},{"url":"https://git.kernel.org/stable/c/0d80ba0a204c6a16bd7778b50de578dff107c0fe"}],"title":"net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-98564","datePublished":"2026-10-18T15:18:31.044Z","dateReserved":"2026-09-25T10:25:14.357Z","dateUpdated":"2026-10-18T15:18:31.044Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-18 16:17:08","lastModifiedDate":"2026-10-18 16:17:08","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"98564","Ordinal":"1","Title":"net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq","CVE":"CVE-2026-98564","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"98564","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq\n\nmt7530_remove_common() disposes the per-PHY interrupt mappings from\n.remove, but the regmap-irq chip that owns the domain is devm-registered,\nso its parent interrupt is only freed once .remove has returned. The\nswitch's own regmap-irq thread can therefore still dispatch on a mapping\nthat is already gone: irq_find_mapping() returns 0, irq_to_desc() returns\nNULL and handle_nested_irq() locks desc->lock without checking it. The\nattached PHYs have not given those interrupts back yet either, which the\nkernel warns about a moment before the fault.\n\nregmap_del_irq_chip() disposes the same mappings itself, after freeing the\nparent interrupt and before removing the domain, so there is nothing left\nfor the driver to do here. Until it runs the descriptors stay alive, and a\nlate dispatch on one of them is harmless: dsa_unregister_switch() has freed\nthe PHY handlers by then, so handle_nested_irq() finds no action and\nreturns.","Type":"Description","Title":"net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq"}]}}}