CVE-2024-35811
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
17/05/2024
Last modified:
14/01/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach<br />
<br />
This is the candidate patch of CVE-2023-47233 :<br />
https://nvd.nist.gov/vuln/detail/CVE-2023-47233<br />
<br />
In brcm80211 driver,it starts with the following invoking chain<br />
to start init a timeout worker:<br />
<br />
->brcmf_usb_probe<br />
->brcmf_usb_probe_cb<br />
->brcmf_attach<br />
->brcmf_bus_started<br />
->brcmf_cfg80211_attach<br />
->wl_init_priv<br />
->brcmf_init_escan<br />
->INIT_WORK(&cfg->escan_timeout_work,<br />
brcmf_cfg80211_escan_timeout_worker);<br />
<br />
If we disconnect the USB by hotplug, it will call<br />
brcmf_usb_disconnect to make cleanup. The invoking chain is :<br />
<br />
brcmf_usb_disconnect<br />
->brcmf_usb_disconnect_cb<br />
->brcmf_detach<br />
->brcmf_cfg80211_detach<br />
->kfree(cfg);<br />
<br />
While the timeout woker may still be running. This will cause<br />
a use-after-free bug on cfg in brcmf_cfg80211_escan_timeout_worker.<br />
<br />
Fix it by deleting the timer and canceling the worker in<br />
brcmf_cfg80211_detach.<br />
<br />
[arend.vanspriel@broadcom.com: keep timer delete as is and cancel work just before free]
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.7 (including) | 4.19.312 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.274 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.215 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.154 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.84 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.24 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (including) | 6.8.3 (excluding) |
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0a7591e14a8da794d0b93b5d1c6254ccb23adacb
- https://git.kernel.org/stable/c/0b812f706fd7090be74812101114a0e165b36744
- https://git.kernel.org/stable/c/0f7352557a35ab7888bc7831411ec8a3cbe20d78
- https://git.kernel.org/stable/c/190794848e2b9d15de92d502b6ac652806904f5a
- https://git.kernel.org/stable/c/202c503935042272e2f9e1bb549d5f69a8681169
- https://git.kernel.org/stable/c/6678a1e7d896c00030b31491690e8ddc9a90767a
- https://git.kernel.org/stable/c/8c36205123dc57349b59b4f1a2301eb278cbc731
- https://git.kernel.org/stable/c/8e3f03f4ef7c36091f46e7349096efb5a2cdb3a1
- https://git.kernel.org/stable/c/bacb8c3ab86dcd760c15903fcee58169bc3026aa
- https://git.kernel.org/stable/c/0a7591e14a8da794d0b93b5d1c6254ccb23adacb
- https://git.kernel.org/stable/c/0b812f706fd7090be74812101114a0e165b36744
- https://git.kernel.org/stable/c/0f7352557a35ab7888bc7831411ec8a3cbe20d78
- https://git.kernel.org/stable/c/190794848e2b9d15de92d502b6ac652806904f5a
- https://git.kernel.org/stable/c/202c503935042272e2f9e1bb549d5f69a8681169
- https://git.kernel.org/stable/c/6678a1e7d896c00030b31491690e8ddc9a90767a
- https://git.kernel.org/stable/c/8c36205123dc57349b59b4f1a2301eb278cbc731
- https://git.kernel.org/stable/c/8e3f03f4ef7c36091f46e7349096efb5a2cdb3a1
- https://git.kernel.org/stable/c/bacb8c3ab86dcd760c15903fcee58169bc3026aa
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html



