---
id: CVE-2025-21744
title: |-
  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 occu…
summary: |-
  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 occu…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-476
vendor: linux
product: linux_kernel
affected:
  - linux_kernel < 6.1.129
  - 'linux_kernel >= 6.2, < 6.6.78'
  - 'linux_kernel >= 6.7, < 6.12.14'
  - 'linux_kernel >= 6.13, < 6.13.3'
patched:
  - linux_kernel 6.13.3
published: '2025-02-27'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:17:31.817'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21744'
references:
  - url: 'https://git.kernel.org/stable/c/2326e19190e176fd72bb542b837a9d2b7fcb8693'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3877fc67bd3d5566cc12763bce39710ceb74a97d'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/4e51d6d093e763348916e69d06d87e0a5593661b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/59ff4fa653ff6db07c61152516ffba79c2a74bda'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/61541d9b5a23df33934fcc620a3a81f246b1b240'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/68abd0c4ebf24cd499841a488b97a6873d5efabb'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a2beefc4fa49ebc22e664dc6b39dbd054f8488f9'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/fbbfef2a5b858eab55741a58b2ac9a0cc8d53c58'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-265688.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-784472.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00254
epssPercentile: 0.16909
ingestedAt: '2026-10-15T03:30:12.792Z'
---

## Overview

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.

## Affected

- `linux_kernel < 6.1.129`
- `linux_kernel >= 6.2, < 6.6.78`
- `linux_kernel >= 6.7, < 6.12.14`
- `linux_kernel >= 6.13, < 6.13.3`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.13.3`
