CVE-2025-21744

wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()

State
Published
Severity
Not scored
Published
Feb 27, 2025
Updated
Oct 15, 2026
Reserved
Dec 29, 2024

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 2326e19190e176fd72bb542b837a9d2b7fcb8693Affected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 59ff4fa653ff6db07c61152516ffba79c2a74bdaAffected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 61541d9b5a23df33934fcc620a3a81f246b1b240Affected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 4e51d6d093e763348916e69d06d87e0a5593661bAffected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 3877fc67bd3d5566cc12763bce39710ceb74a97dAffected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before fbbfef2a5b858eab55741a58b2ac9a0cc8d53c58Affected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before a2beefc4fa49ebc22e664dc6b39dbd054f8488f9Affected
  • 7f00ee2bbc630900ba16fc2690473f3e2db0e264 to before 68abd0c4ebf24cd499841a488b97a6873d5efabbAffected
  • 6faa698c35a43b9e74ea24e90fe37471d08d00d0Affected
  • 9119232cc92a269d7860b4aa51f07d3923a3cc10Affected
  • 4.7.10 to before 4.8Affected
  • 4.8.4 to before 4.9Affected
LinuxLinux
  • 4.9Affected
  • before 4.9Not affected
  • 5.4.291 through 5.4.*Not affected
  • 5.10.235 through 5.10.*Not affected
  • 5.15.179 through 5.15.*Not affected
  • 6.1.129 through 6.1.*Not affected
  • 6.6.78 through 6.6.*Not affected
  • 6.12.14 through 6.12.*Not affected
  • 6.13.3 through 6.13.*Not affected
  • 6.14 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.