{"id":"CVE-2022-49934","state":"PUBLISHED","title":"wifi: mac80211: Fix UAF in ieee80211_scan_rx()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: Fix UAF in ieee80211_scan_rx()\n\nieee80211_scan_rx() tries to access scan_req->flags after a\nnull check, but a UAF is observed when the scan is completed\nand __ieee80211_scan_completed() executes, which then calls\ncfg80211_scan_done() leading to the freeing of scan_req.\n\nSince scan_req is rcu_dereference()'d, prevent the racing in\n__ieee80211_scan_completed() by ensuring that from mac80211's\nPOV it is no longer accessed from an RCU read critical section\nbefore we call cfg80211_scan_done().","publishedAt":"2025-06-18T10:54:36.161Z","updatedAt":"2026-08-05T08:56:46.037Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/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":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"6eb181a64fdabf10be9e54de728876667da20255","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"e0ff39448cea654843744c72c6780293c5082cb1","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"78a07732fbb0934d14827d8f09b9aa6a49ee1aa9","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"9ad48cbf8b07f10c1e4a7a262b32a9179ae9dd2d","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"4abc8c07a065ecf771827bde3c63fbbe4aa0c08b","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"5d20c6f932f2758078d0454729129c894fe353e7","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"c0445feb80a4d0854898118fa01073701f8d356b","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"60deb9f10eec5c6a20252ed36238b55d8b614a2c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/scan.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.19","versionType":"semver"},{"version":"4.9.330","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.295","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.260","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.215","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.142","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.66","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.8","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/scan.c"]}],"references":["https://git.kernel.org/stable/c/6eb181a64fdabf10be9e54de728876667da20255","https://git.kernel.org/stable/c/e0ff39448cea654843744c72c6780293c5082cb1","https://git.kernel.org/stable/c/78a07732fbb0934d14827d8f09b9aa6a49ee1aa9","https://git.kernel.org/stable/c/9ad48cbf8b07f10c1e4a7a262b32a9179ae9dd2d","https://git.kernel.org/stable/c/4abc8c07a065ecf771827bde3c63fbbe4aa0c08b","https://git.kernel.org/stable/c/5d20c6f932f2758078d0454729129c894fe353e7","https://git.kernel.org/stable/c/c0445feb80a4d0854898118fa01073701f8d356b","https://git.kernel.org/stable/c/60deb9f10eec5c6a20252ed36238b55d8b614a2c"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/49xxx/CVE-2022-49934.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-49934","state":"PUBLISHED","datePublished":"2025-06-18T10:54:36.161Z","dateUpdated":"2026-08-05T08:56:46.037Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-05-01T14:05:17.254Z"},"containers":{"cna":{"title":"wifi: mac80211: Fix UAF in ieee80211_scan_rx()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: Fix UAF in ieee80211_scan_rx()\n\nieee80211_scan_rx() tries to access scan_req->flags after a\nnull check, but a UAF is observed when the scan is completed\nand __ieee80211_scan_completed() executes, which then calls\ncfg80211_scan_done() leading to the freeing of scan_req.\n\nSince scan_req is rcu_dereference()'d, prevent the racing in\n__ieee80211_scan_completed() by ensuring that from mac80211's\nPOV it is no longer accessed from an RCU read critical section\nbefore we call cfg80211_scan_done()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"6eb181a64fdabf10be9e54de728876667da20255","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"e0ff39448cea654843744c72c6780293c5082cb1","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"78a07732fbb0934d14827d8f09b9aa6a49ee1aa9","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"9ad48cbf8b07f10c1e4a7a262b32a9179ae9dd2d","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"4abc8c07a065ecf771827bde3c63fbbe4aa0c08b","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"5d20c6f932f2758078d0454729129c894fe353e7","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"c0445feb80a4d0854898118fa01073701f8d356b","versionType":"git"},{"version":"6ea0a69ca21bbddab5b3979c2190013b0263e749","status":"affected","lessThan":"60deb9f10eec5c6a20252ed36238b55d8b614a2c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/scan.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.19","versionType":"semver"},{"version":"4.9.330","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.295","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.260","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.215","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.142","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.66","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.8","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/scan.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/6eb181a64fdabf10be9e54de728876667da20255"},{"url":"https://git.kernel.org/stable/c/e0ff39448cea654843744c72c6780293c5082cb1"},{"url":"https://git.kernel.org/stable/c/78a07732fbb0934d14827d8f09b9aa6a49ee1aa9"},{"url":"https://git.kernel.org/stable/c/9ad48cbf8b07f10c1e4a7a262b32a9179ae9dd2d"},{"url":"https://git.kernel.org/stable/c/4abc8c07a065ecf771827bde3c63fbbe4aa0c08b"},{"url":"https://git.kernel.org/stable/c/5d20c6f932f2758078d0454729129c894fe353e7"},{"url":"https://git.kernel.org/stable/c/c0445feb80a4d0854898118fa01073701f8d356b"},{"url":"https://git.kernel.org/stable/c/60deb9f10eec5c6a20252ed36238b55d8b614a2c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The UAF is hit in ieee80211_scan_rx() on the softirq RX path when processing over-the-air Probe Response frames during an active scan; an attacker on the same Wi‑Fi RF segment injects those frames.\nAC:L - The attacker controls the RX side by flooding Probe Responses and can retry across frequent automatic scans (observable via the victim’s Probe Requests), making this an attacker-influenced race rather than an uncontrollable condition.\nPR:N - Frame delivery and scan RX handling require no account or capability on the victim; background/connect/scheduled scans run from system WLAN stacks without attacker-held host privileges.\nUI:N - Phones and laptops routinely scan in the background with Wi‑Fi enabled, so Probe Responses are processed at scan completion without further victim action at attack time.\nS:U - The use-after-free corrupts mac80211/cfg80211 heap state inside the host kernel only and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After kfree(scan_req), ieee80211_scan_rx() still reads scan_req->flags via a dangling RCU reference; reclaiming that cfg80211_scan_request object enables arbitrary kernel disclosure.\nI:H - The same sprayable scan_req UAF in the concurrent RX path yields write and control-flow primitives characteristic of exploitable kernel use-after-frees.\nA:H - Concurrent use of the freed scan_req causes a KASAN-confirmed kernel oops/panic-class crash in the scan RX path, so availability impact is complete even without full code execution."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:56:46.037Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"4.9.330"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"4.14.295"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"4.19.260"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.4.215"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.10.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.15.66"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"5.19.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.19","versionEndExcluding":"6.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}