| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2025-21744: wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize() |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize() |
| |
| On removal of the device or unloading of the kernel module a potential NULL |
| pointer dereference occurs. |
| |
| The following sequence deletes the interface: |
| |
| brcmf_detach() |
| brcmf_remove_interface() |
| brcmf_del_if() |
| |
| Inside the brcmf_del_if() function the drvr->if2bss[ifidx] is updated to |
| BRCMF_BSSIDX_INVALID (-1) if the bsscfgidx matches. |
| |
| After brcmf_remove_interface() call the brcmf_proto_detach() function is |
| called providing the following sequence: |
| |
| brcmf_detach() |
| brcmf_proto_detach() |
| brcmf_proto_msgbuf_detach() |
| brcmf_flowring_detach() |
| brcmf_msgbuf_delete_flowring() |
| brcmf_msgbuf_remove_flowring() |
| brcmf_flowring_delete() |
| brcmf_get_ifp() |
| brcmf_txfinalize() |
| |
| Since brcmf_get_ip() can and actually will return NULL in this case the |
| call to brcmf_txfinalize() will result in a NULL pointer dereference inside |
| brcmf_txfinalize() when trying to update ifp->ndev->stats.tx_errors. |
| |
| This will only happen if a flowring still has an skb. |
| |
| Although the NULL pointer dereference has only been seen when trying to |
| update the tx statistic, all other uses of the ifp pointer have been |
| guarded as well with an early return if ifp is NULL. |
| |
| The Linux kernel CVE team has assigned CVE-2025-21744 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Fixed in 5.4.291 with commit 2326e19190e176fd72bb542b837a9d2b7fcb8693 |
| Fixed in 5.10.235 with commit 59ff4fa653ff6db07c61152516ffba79c2a74bda |
| Fixed in 5.15.179 with commit 61541d9b5a23df33934fcc620a3a81f246b1b240 |
| Fixed in 6.1.129 with commit 4e51d6d093e763348916e69d06d87e0a5593661b |
| Fixed in 6.6.78 with commit 3877fc67bd3d5566cc12763bce39710ceb74a97d |
| Fixed in 6.12.14 with commit fbbfef2a5b858eab55741a58b2ac9a0cc8d53c58 |
| Fixed in 6.13.3 with commit a2beefc4fa49ebc22e664dc6b39dbd054f8488f9 |
| Fixed in 6.14 with commit 68abd0c4ebf24cd499841a488b97a6873d5efabb |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2025-21744 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/2326e19190e176fd72bb542b837a9d2b7fcb8693 |
| https://git.kernel.org/stable/c/59ff4fa653ff6db07c61152516ffba79c2a74bda |
| https://git.kernel.org/stable/c/61541d9b5a23df33934fcc620a3a81f246b1b240 |
| https://git.kernel.org/stable/c/4e51d6d093e763348916e69d06d87e0a5593661b |
| https://git.kernel.org/stable/c/3877fc67bd3d5566cc12763bce39710ceb74a97d |
| https://git.kernel.org/stable/c/fbbfef2a5b858eab55741a58b2ac9a0cc8d53c58 |
| https://git.kernel.org/stable/c/a2beefc4fa49ebc22e664dc6b39dbd054f8488f9 |
| https://git.kernel.org/stable/c/68abd0c4ebf24cd499841a488b97a6873d5efabb |