Bug 8870 - wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
Summary: wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
Status: NEW
Alias: None
Product: ANCK 5.10 Dev
Classification: ANCK
Component: net (show other bugs) net
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: XuanZhuo
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-24 10:13 UTC by zhujun
Modified: 2024-04-24 10:16 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zhujun cmss_group 2024-04-24 10:13:45 UTC
This is the candidate patch of CVE-2023-47233 :
https://nvd.nist.gov/vuln/detail/CVE-2023-47233

In brcm80211 driver,it starts with the following invoking chain
to start init a timeout worker:

->brcmf_usb_probe
  ->brcmf_usb_probe_cb
    ->brcmf_attach
      ->brcmf_bus_started
        ->brcmf_cfg80211_attach
          ->wl_init_priv
            ->brcmf_init_escan
              ->INIT_WORK(&cfg->escan_timeout_work,
                  brcmf_cfg80211_escan_timeout_worker);

If we disconnect the USB by hotplug, it will call
brcmf_usb_disconnect to make cleanup. The invoking chain is :

brcmf_usb_disconnect
  ->brcmf_usb_disconnect_cb
    ->brcmf_detach
      ->brcmf_cfg80211_detach
        ->kfree(cfg);

While the timeout woker may still be running. This will cause
a use-after-free bug on cfg in brcmf_cfg80211_escan_timeout_worker.

Fix it by deleting the timer and canceling the worker in
brcmf_cfg80211_detach.

社区有patch已经解决

wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach  

commit bacb8c3ab86dcd760c15903fcee58169bc3026aa

Reference:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=bacb8c3ab86dcd760c15903fcee58169bc3026aa

git cherry-pick -s bacb8c3ab(with stable-v5.10.215 repo added)
Comment 1 小龙 admin 2024-04-24 10:16:14 UTC
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/3090