{"id":"CVE-2026-98708","title":"wifi: mac80211: keep paired old chanctx alive","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: keep paired old chanctx alive\n\nAn in-place replacement keeps reciprocal replace_ctx pointers between\nthe old WILL_BE_REPLACED chanctx and the new REPLAC…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2","Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 1c82d0c5d509179ba2a4edfa096f516aebf960b0","Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < afd1cdd16a25c7185b812a612ab7d5f2cbd1e086","Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 3412e9a800786d1dec4a58367db1cba275e7ef11","Linux 3.17"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:46:38.475Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98708","references":[{"url":"https://git.kernel.org/stable/c/21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2"},{"url":"https://git.kernel.org/stable/c/1c82d0c5d509179ba2a4edfa096f516aebf960b0"},{"url":"https://git.kernel.org/stable/c/afd1cdd16a25c7185b812a612ab7d5f2cbd1e086"},{"url":"https://git.kernel.org/stable/c/3412e9a800786d1dec4a58367db1cba275e7ef11"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.513Z","slug":"CVE-2026-98708","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: keep paired old chanctx alive\n\nAn in-place replacement keeps reciprocal replace_ctx pointers between\nthe old WILL_BE_REPLACED chanctx and the new REPLACES_OTHER chanctx.\nHowever, the early free paths only consider assigned and reserved link\nusers when deciding whether to free the old chanctx.\n\nThat lets the old chanctx be freed too early while the replacement\npartner still points back to it, either when the last assigned link is\nreleased or when that link successfully reassigns to another existing\ncontext. Later unreserve and switch-finalization paths can then follow a\nstale replace_ctx pointer.\n\nKeep a paired old chanctx alive until the replacement pair has been torn\ndown. Apply the same check to both __ieee80211_link_release_channel()\nand ieee80211_link_use_reserved_reassign(). If the replacement is later\nabandoned, ieee80211_link_unreserve_chanctx() already tears down the\npairing before freeing the old chanctx once no users remain.\n\n## Affected\n\n- `Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2`\n- `Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 1c82d0c5d509179ba2a4edfa096f516aebf960b0`\n- `Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < afd1cdd16a25c7185b812a612ab7d5f2cbd1e086`\n- `Linux >= 5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f < 3412e9a800786d1dec4a58367db1cba275e7ef11`\n- `Linux 3.17`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}