In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: fix general-protection-fault in ieee80211subifstart_xmit()
When device is running and the interface status is changed, the gpf issue is triggered. The problem triggering process is as follows: Thread A: Thread B ieee80211runtimechangeiftype() processonework() ... ... ieee80211dostop() ... ... ... sdata->bss = NULL ... ... ieee80211subifstartxmit() ieee80211multicasttounicast //!sdata->bss->multicastto_unicast cause gpf issue
When the interface status is changed, the sending queue continues to send packets. After the bss is set to NULL, the bss is accessed. As a result, this causes a general-protection-fault issue.
The following is the stack information: general protection fault, probably for non-canonical address 0xdffffc000000002f: 0000 [#1] PREEMPT SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000178-0x000000000000017f] Workqueue: mld mldifcwork RIP: 0010:ieee80211subifstartxmit+0x25b/0x1310 Call Trace: <TASK> devhardstartxmit+0x1be/0x990 _devqueuexmit+0x2c9a/0x3b60 ip6finishoutput2+0xf92/0x1520 ip6finishoutput+0x6af/0x11e0 ip6output+0x1ed/0x540 mldsendpack+0xa09/0xe70 mldifcwork+0x71c/0xdb0 processonework+0x9bf/0x1710 workerthread+0x665/0x1080 kthread+0x2e4/0x3a0 retfromfork+0x1f/0x30 </TASK>
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49876.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49876.json"
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"234419052485809845882714201724550416178",
"155949749208729892736743817732763781694",
"307547175670089808078666849624505157327"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@780854186946e0de2be192ee7fa5125666533b3a",
"signature_type": "Line",
"id": "CVE-2022-49876-129c85a7",
"target": {
"file": "net/mac80211/tx.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"234419052485809845882714201724550416178",
"155949749208729892736743817732763781694",
"307547175670089808078666849624505157327"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03eb68c72cee249aeb7af7d04a83c033aca3d6d9",
"signature_type": "Line",
"id": "CVE-2022-49876-29d058f4",
"target": {
"file": "net/mac80211/tx.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "241204398978316335628323459181185382396",
"length": 729.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@780854186946e0de2be192ee7fa5125666533b3a",
"signature_type": "Function",
"id": "CVE-2022-49876-80728cdb",
"target": {
"file": "net/mac80211/tx.c",
"function": "ieee80211_subif_start_xmit"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "241204398978316335628323459181185382396",
"length": 729.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03eb68c72cee249aeb7af7d04a83c033aca3d6d9",
"signature_type": "Function",
"id": "CVE-2022-49876-bd9cc946",
"target": {
"file": "net/mac80211/tx.c",
"function": "ieee80211_subif_start_xmit"
}
}
]