CVE-2022-50880

Source
https://cve.org/CVERecord?id=CVE-2022-50880
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50880.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-50880
Downstream
Related
Published
2025-12-30T12:23:19.551Z
Modified
2026-03-20T11:47:40.058099Z
Summary
wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()
Details

In the Linux kernel, the following vulnerability has been resolved:

wifi: ath10k: add peer map clean up for peer delete in ath10kstastate()

When peer delete failed in a disconnect operation, use-after-free detected by KFENCE in below log. It is because for each vdevid and address, it has only one struct ath10kpeer, it is allocated in ath10kpeermapevent(). When connected to an AP, it has more than one HTTT2HMSGTYPEPEERMAP reported from firmware, then the array peermap of struct ath10k will be set muti-elements to the same ath10kpeer in ath10kpeermapevent(). When peer delete failed in ath10kstastate(), the ath10kpeer will be free for the 1st peer id in array peermap of struct ath10k, and then use-after-free happened for the 2nd peer id because they map to the same ath10kpeer.

And clean up all peers in array peermap for the ath10kpeer, then user-after-free disappeared

peer map event log: [ 306.911021] wlan0: authenticate with b0:2a:43:e6:75:0e [ 306.957187] ath10kpci 0000:01:00.0: mac vdev 0 peer create b0:2a:43:e6:75:0e (new sta) sta 1 / 32 peer 1 / 33 [ 306.957395] ath10kpci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 246 [ 306.957404] ath10kpci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 198 [ 306.986924] ath10kpci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 166

peer unmap event log: [ 435.715691] wlan0: deauthenticating from b0:2a:43:e6:75:0e by local choice (Reason: 3=DEAUTHLEAVING) [ 435.716802] ath10kpci 0000:01:00.0: mac vdev 0 peer delete b0:2a:43:e6:75:0e sta ffff990e0e9c2b50 (sta gone) [ 435.717177] ath10kpci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 246 [ 435.717186] ath10kpci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 198 [ 435.717193] ath10k_pci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 166

use-after-free log: [21705.888627] wlan0: deauthenticating from d0:76:8f:82:be:75 by local choice (Reason: 3=DEAUTHLEAVING) [21713.799910] ath10kpci 0000:01:00.0: failed to delete peer d0:76:8f:82:be:75 for vdev 0: -110 [21713.799925] ath10kpci 0000:01:00.0: found sta peer d0:76:8f:82:be:75 (ptr 0000000000000000 id 102) entry on vdev 0 after it was supposedly removed [21713.799968] ================================================================== [21713.799991] BUG: KFENCE: use-after-free read in ath10kstastate+0x265/0xb8a [ath10kcore] [21713.799991] [21713.799997] Use-after-free read at 0x00000000abe1c75e (in kfence-#69): [21713.800010] ath10kstastate+0x265/0xb8a [ath10kcore] [21713.800041] drvsta_state+0x115/0x677 [mac80211] [21713.800059] __stainfodestroy_part2+0xb1/0x133 [mac80211] [21713.800076] __stainfoflush+0x11d/0x162 [mac80211] [21713.800093] ieee80211setdisassoc+0x12d/0x2f4 [mac80211] [21713.800110] ieee80211mgddeauth+0x26c/0x29b [mac80211] [21713.800137] cfg80211mlmedeauth+0x13f/0x1bb [cfg80211] [21713.800153] nl80211deauthenticate+0xf8/0x121 [cfg80211] [21713.800161] genlrcvmsg+0x38e/0x3be [21713.800166] netlinkrcvskb+0x89/0xf7 [21713.800171] genlrcv+0x28/0x36 [21713.800176] netlinkunicast+0x179/0x24b [21713.800181] netlinksendmsg+0x3a0/0x40e [21713.800187] sock_sendmsg+0x72/0x76 [21713.800192] ____sys_sendmsg+0x16d/0x1e3 [21713.800196] ___sys_sendmsg+0x95/0xd1 [21713.800200] _syssendmsg+0x85/0xbf [21713.800205] dosyscall64+0x43/0x55 [21713.800210] entrySYSCALL64afterhwframe+0x44/0xa9 [21713.800213] [21713.800219] kfence-#69: 0x000000009149b0d5-0x000000004c0697fb, size=1064, cache=kmalloc-2k [21713.800219] [21713.800224] allocated by task 13 on cpu 0 at 21705.501373s: [21713.800241] ath10kpeermapevent+0x7e/0x154 [ath10kcore] [21713.800254] ath10khttt2hmsghandler+0x586/0x1039 [ath10kcore] [21713.800265] ath10khtthtct2hmsghandler+0x12/0x28 [ath10kcore] [21713.800277] ath10khtcrxcompletionhandler+0x14c/0x1b5 [ath10kcore] [21713.800283] ath10kpciprocessrxcb+0x195/0x1d ---truncated---

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50880.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
d0eeafad118940fe445ca00f45be5624fea2ec34
Fixed
15604ab67179ae27ea3c7fb24b6df32b143257c4
Fixed
2d6259715c9597a6cfa25db8911683eb0073b1c6
Fixed
f12fc305c127bd07bb50373e29c6037696f916a8
Fixed
4494ec1c0bb850eaa80fed98e5b041d961011d3e
Fixed
08faf07717be0c88b02b5aa45aad2225dfcdd2dc
Fixed
54a3201f3c1ff813523937da78b5fa7649dbab71
Fixed
2bf916418d2141b810c40812433ab4ecfd3c2934
Fixed
38245f2d62cd4d1f38a763a7b4045ab4565b30a0
Fixed
f020d9570a04df0762a2ac5c50cf1d8c511c9164

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50880.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.8.0
Fixed
4.9.331
Type
ECOSYSTEM
Events
Introduced
4.10.0
Fixed
4.14.296
Type
ECOSYSTEM
Events
Introduced
4.15.0
Fixed
4.19.262
Type
ECOSYSTEM
Events
Introduced
4.20.0
Fixed
5.4.220
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.150
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.75
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
5.19.17
Type
ECOSYSTEM
Events
Introduced
5.20.0
Fixed
6.0.3

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50880.json"