CVE-2026-72003 (GCVE-0-2026-72003)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:51 – Updated: 2026-08-17 05:39
VLAI
Title
wifi: brcmfmac: cyw: fix heap overflow on a short auth frame
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: cyw: fix heap overflow on a short auth frame brcmf_notify_auth_frame_rx() takes the frame length from the firmware event and copies the frame body with the management header offset subtracted: u32 mgmt_frame_len = e->datalen - sizeof(struct brcmf_rx_mgmt_data); ... memcpy(&mgmt_frame->u, frame, mgmt_frame_len - offsetof(struct ieee80211_mgmt, u)); The only length check is e->datalen >= sizeof(*rxframe), so mgmt_frame_len can be anything from 0 up. offsetof(struct ieee80211_mgmt, u) is 24. When mgmt_frame_len is below that, the subtraction wraps as an unsigned value to a huge length. The memcpy then runs far past the kzalloc'd buffer. A malicious or malfunctioning AP can make the frame short during the external SAE auth exchange, so this is a remotely triggered heap overflow. Reject frames shorter than the management header offset before the copy.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 66f909308a7c05082919ff214a0bbe2a76aa0283 , < 55b26abb1fa1ec406b3ad11b43c49c7624257565 (git)
Affected: 66f909308a7c05082919ff214a0bbe2a76aa0283 , < 185bb156c427d0f865d344a6d0eaa02c6d05cc57 (git)
Affected: 66f909308a7c05082919ff214a0bbe2a76aa0283 , < 240c8d2c717b3f8153e7e877b22a82518d78dbdc (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.16
Unaffected: 0 , < 6.16 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "55b26abb1fa1ec406b3ad11b43c49c7624257565",
              "status": "affected",
              "version": "66f909308a7c05082919ff214a0bbe2a76aa0283",
              "versionType": "git"
            },
            {
              "lessThan": "185bb156c427d0f865d344a6d0eaa02c6d05cc57",
              "status": "affected",
              "version": "66f909308a7c05082919ff214a0bbe2a76aa0283",
              "versionType": "git"
            },
            {
              "lessThan": "240c8d2c717b3f8153e7e877b22a82518d78dbdc",
              "status": "affected",
              "version": "66f909308a7c05082919ff214a0bbe2a76aa0283",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.16"
            },
            {
              "lessThan": "6.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: brcmfmac: cyw: fix heap overflow on a short auth frame\n\nbrcmf_notify_auth_frame_rx() takes the frame length from the firmware\nevent and copies the frame body with the management header offset\nsubtracted:\n\n\tu32 mgmt_frame_len = e-\u003edatalen - sizeof(struct brcmf_rx_mgmt_data);\n\t...\n\tmemcpy(\u0026mgmt_frame-\u003eu, frame,\n\t       mgmt_frame_len - offsetof(struct ieee80211_mgmt, u));\n\nThe only length check is e-\u003edatalen \u003e= sizeof(*rxframe), so mgmt_frame_len\ncan be anything from 0 up. offsetof(struct ieee80211_mgmt, u) is 24. When\nmgmt_frame_len is below that, the subtraction wraps as an unsigned value to\na huge length. The memcpy then runs far past the kzalloc\u0027d buffer. A\nmalicious or malfunctioning AP can make the frame short during the\nexternal SAE auth exchange, so this is a remotely triggered heap overflow.\n\nReject frames shorter than the management header offset before the copy."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - A malicious or rogue AP on the same WiFi/BSS segment sends a truncated 802.11 authentication frame during the external SAE handshake; the brcmfmac CYW driver processes it from firmware events with no other network hop required.\nAC:L - The attacker fully controls the AP and can reliably deliver auth frames with firmware-reported lengths below 24 bytes during SAE, triggering the unsigned underflow and huge memcpy without races or victim-specific heap layout.\nPR:N - Exploitation requires no privileges on the victim host; an unauthenticated adjacent wireless attacker operating a rogue WPA3-SAE AP can trigger the pre-authentication code path without local access or capabilities.\nUI:N - No victim action is required at exploit time beyond normal station behavior; auto-reconnect or background association to a saved WPA3 network (or an evil-twin SSID) suffices to enter external SAE where the malicious auth frame is delivered.\nS:U - Impact is confined to kernel memory on the vulnerable station; successful exploitation yields local privilege escalation or denial of service on the same host, not a cross-VM or cross-security-authority boundary escape.\nC:H - The underflowed memcpy length reads far beyond the firmware event buffer (kernel heap OOB read) and corrupts adjacent heap objects; such heap overflows are routinely weaponized for arbitrary kernel memory disclosure.\nI:H - The same memcpy writes gigabyte-scale data past the kzalloc allocation, corrupting kernel heap metadata and adjacent objects in ways that enable arbitrary write primitives and potential code execution.\nA:H - Copying ~4 GiB from kernel memory reliably causes kernel oops, panic, or hang on the affected system; even failed exploitation typically crashes the host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:39:21.650Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/55b26abb1fa1ec406b3ad11b43c49c7624257565"
        },
        {
          "url": "https://git.kernel.org/stable/c/185bb156c427d0f865d344a6d0eaa02c6d05cc57"
        },
        {
          "url": "https://git.kernel.org/stable/c/240c8d2c717b3f8153e7e877b22a82518d78dbdc"
        }
      ],
      "title": "wifi: brcmfmac: cyw: fix heap overflow on a short auth frame",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72003",
    "datePublished": "2026-08-15T05:51:34.730Z",
    "dateReserved": "2026-08-09T03:40:39.898Z",
    "dateUpdated": "2026-08-17T05:39:21.650Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-72003",
      "date": "2026-08-24",
      "epss": "0.00339",
      "percentile": "0.26403"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-72003\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-15T06:20:53.557\",\"lastModified\":\"2026-08-17T06:17:57.717\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nwifi: brcmfmac: cyw: fix heap overflow on a short auth frame\\n\\nbrcmf_notify_auth_frame_rx() takes the frame length from the firmware\\nevent and copies the frame body with the management header offset\\nsubtracted:\\n\\n\\tu32 mgmt_frame_len = e-\u003edatalen - sizeof(struct brcmf_rx_mgmt_data);\\n\\t...\\n\\tmemcpy(\u0026mgmt_frame-\u003eu, frame,\\n\\t       mgmt_frame_len - offsetof(struct ieee80211_mgmt, u));\\n\\nThe only length check is e-\u003edatalen \u003e= sizeof(*rxframe), so mgmt_frame_len\\ncan be anything from 0 up. offsetof(struct ieee80211_mgmt, u) is 24. When\\nmgmt_frame_len is below that, the subtraction wraps as an unsigned value to\\na huge length. The memcpy then runs far past the kzalloc\u0027d buffer. A\\nmalicious or malfunctioning AP can make the frame short during the\\nexternal SAE auth exchange, so this is a remotely triggered heap overflow.\\n\\nReject frames shorter than the management header offset before the copy.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"66f909308a7c05082919ff214a0bbe2a76aa0283\",\"lessThan\":\"55b26abb1fa1ec406b3ad11b43c49c7624257565\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"66f909308a7c05082919ff214a0bbe2a76aa0283\",\"lessThan\":\"185bb156c427d0f865d344a6d0eaa02c6d05cc57\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"66f909308a7c05082919ff214a0bbe2a76aa0283\",\"lessThan\":\"240c8d2c717b3f8153e7e877b22a82518d78dbdc\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.16\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.16\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.40\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.5\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":8.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"ADJACENT_NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/185bb156c427d0f865d344a6d0eaa02c6d05cc57\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/240c8d2c717b3f8153e7e877b22a82518d78dbdc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/55b26abb1fa1ec406b3ad11b43c49c7624257565\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-08-17T16:03:01+00:00",
      "cve": "CVE-2026-72003",
      "id": "CVE-2026-72003",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: brcmfmac: cyw: fix heap overflow on a short auth frame",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-72003.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…