{"id":"CVE-2026-98341","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: don't free driver-owned scan requests\n\nWhen an interface goes down while a scan is running, cfg80211 completes\nthe scan towards userspace and frees the …","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: don't free driver-owned scan requests\n\nWhen an interface goes down while a scan is running, cfg80211 completes\nthe scan towards userspace and frees the …","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 4a58e7c38443154fce1b47910e1a9184f65c5d72 < e8c75736cfd0c6c87562cda2312e3fe5e2227955","Linux >= 4a58e7c38443154fce1b47910e1a9184f65c5d72 < cf6da29d17994865f73ca70976495ea856909c63","Linux >= 4a58e7c38443154fce1b47910e1a9184f65c5d72 < dab68a74e90b8e07f08ed9deaa5884857a3cfe89","Linux 3.14"],"published":"2026-10-06","updated":"2026-10-06","sourceUpdated":"2026-10-06T09:18:26.873","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-98341","references":[{"url":"https://git.kernel.org/stable/c/cf6da29d17994865f73ca70976495ea856909c63","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/dab68a74e90b8e07f08ed9deaa5884857a3cfe89","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/e8c75736cfd0c6c87562cda2312e3fe5e2227955","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-10-06T08:50:17.399Z","slug":"CVE-2026-98341","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: don't free driver-owned scan requests\n\nWhen an interface goes down while a scan is running, cfg80211 completes\nthe scan towards userspace and frees the scan request. However, the\ndriver can be convinced that it owns the request, since the cancellation\nis (intended to be) asynchronous.\n\nThe WARN_ON() in the netdev notifier was meant to catch this, but it's\nnot actually avoidable, so it triggers and we get a UAF in scan_done().\n\nThere doesn't seem to be a great way around it, so just track that the\ndriver is still convinced it owns the request, and then just free it on\ncompletion if it was already cancelled. Also remove the warnings since\nthey can trigger in the intended architecture.\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":[]}