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>
{ "vanir_signatures": [ { "signature_version": "v1", "signature_type": "Line", "target": { "file": "net/mac80211/tx.c" }, "id": "CVE-2022-49876-129c85a7", "digest": { "line_hashes": [ "234419052485809845882714201724550416178", "155949749208729892736743817732763781694", "307547175670089808078666849624505157327" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@780854186946e0de2be192ee7fa5125666533b3a" }, { "signature_version": "v1", "signature_type": "Line", "target": { "file": "net/mac80211/tx.c" }, "id": "CVE-2022-49876-29d058f4", "digest": { "line_hashes": [ "234419052485809845882714201724550416178", "155949749208729892736743817732763781694", "307547175670089808078666849624505157327" ], "threshold": 0.9 }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03eb68c72cee249aeb7af7d04a83c033aca3d6d9" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "net/mac80211/tx.c", "function": "ieee80211_subif_start_xmit" }, "id": "CVE-2022-49876-80728cdb", "digest": { "length": 729.0, "function_hash": "241204398978316335628323459181185382396" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@780854186946e0de2be192ee7fa5125666533b3a" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "net/mac80211/tx.c", "function": "ieee80211_subif_start_xmit" }, "id": "CVE-2022-49876-bd9cc946", "digest": { "length": 729.0, "function_hash": "241204398978316335628323459181185382396" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03eb68c72cee249aeb7af7d04a83c033aca3d6d9" } ] }