CVE-2025-21744
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
27/02/2025
Last modified:
13/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()<br />
<br />
On removal of the device or unloading of the kernel module a potential NULL<br />
pointer dereference occurs.<br />
<br />
The following sequence deletes the interface:<br />
<br />
brcmf_detach()<br />
brcmf_remove_interface()<br />
brcmf_del_if()<br />
<br />
Inside the brcmf_del_if() function the drvr->if2bss[ifidx] is updated to<br />
BRCMF_BSSIDX_INVALID (-1) if the bsscfgidx matches.<br />
<br />
After brcmf_remove_interface() call the brcmf_proto_detach() function is<br />
called providing the following sequence:<br />
<br />
brcmf_detach()<br />
brcmf_proto_detach()<br />
brcmf_proto_msgbuf_detach()<br />
brcmf_flowring_detach()<br />
brcmf_msgbuf_delete_flowring()<br />
brcmf_msgbuf_remove_flowring()<br />
brcmf_flowring_delete()<br />
brcmf_get_ifp()<br />
brcmf_txfinalize()<br />
<br />
Since brcmf_get_ip() can and actually will return NULL in this case the<br />
call to brcmf_txfinalize() will result in a NULL pointer dereference inside<br />
brcmf_txfinalize() when trying to update ifp->ndev->stats.tx_errors.<br />
<br />
This will only happen if a flowring still has an skb.<br />
<br />
Although the NULL pointer dereference has only been seen when trying to<br />
update the tx statistic, all other uses of the ifp pointer have been<br />
guarded as well with an early return if ifp is NULL.
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:*:*:*:*:*:*:*:* | 6.1.129 (excluding) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.78 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.14 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.13.3 (excluding) |
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/2326e19190e176fd72bb542b837a9d2b7fcb8693
- https://git.kernel.org/stable/c/3877fc67bd3d5566cc12763bce39710ceb74a97d
- https://git.kernel.org/stable/c/4e51d6d093e763348916e69d06d87e0a5593661b
- https://git.kernel.org/stable/c/59ff4fa653ff6db07c61152516ffba79c2a74bda
- https://git.kernel.org/stable/c/61541d9b5a23df33934fcc620a3a81f246b1b240
- https://git.kernel.org/stable/c/68abd0c4ebf24cd499841a488b97a6873d5efabb
- https://git.kernel.org/stable/c/a2beefc4fa49ebc22e664dc6b39dbd054f8488f9
- https://git.kernel.org/stable/c/fbbfef2a5b858eab55741a58b2ac9a0cc8d53c58