Commit 1cc172db authored by Zheng Wang's avatar Zheng Wang Committed by Zhengchao Shao
Browse files

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

stable inclusion
from stable-v4.19.312
commit 202c503935042272e2f9e1bb549d5f69a8681169
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8DQ75
CVE: CVE-2023-47233

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=202c503935042272e2f9e1bb549d5f69a8681169

--------------------------------

[ Upstream commit 0f7352557a35ab7888bc7831411ec8a3cbe20d78 ]

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.

Fixes: e756af5b ("brcmfmac: add e-scan support.")
Signed-off-by: default avatarZheng Wang <zyytlz.wz@163.com>
Cc: stable@vger.kernel.org
[arend.vanspriel@broadcom.com: keep timer delete as is and cancel work just before free]
Signed-off-by: default avatarArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240107072504.392713-1-arend.vanspriel@broadcom.com


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>

Conflicts:
	drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
parent 3fc54ba0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment