CVE-2025-37973 (GCVE-0-2025-37973)
Vulnerability from cvelistv5
Published
2025-05-20 16:47
Modified
2026-08-05 11:58
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation Currently during the multi-link element defragmentation process, the multi-link element length added to the total IEs length when calculating the length of remaining IEs after the multi-link element in cfg80211_defrag_mle(). This could lead to out-of-bounds access if the multi-link element or its corresponding fragment elements are the last elements in the IEs buffer. To address this issue, correctly calculate the remaining IEs length by deducting the multi-link element end offset from total IEs end offset.
Impacted products
Vendor Product Version
Linux Linux Version: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10
Version: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10
Version: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10
Version: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/scan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "73dde269a1a43e6b1aa92eba13ad2df58bfdd38e",
              "status": "affected",
              "version": "2481b5da9c6b2ee1fde55a1c29eb2ca377145a10",
              "versionType": "git"
            },
            {
              "lessThan": "9423f6da825172b8dc60d4688ed3d147291c3be9",
              "status": "affected",
              "version": "2481b5da9c6b2ee1fde55a1c29eb2ca377145a10",
              "versionType": "git"
            },
            {
              "lessThan": "e1c6d0c6199bd5f4cfc7a66ae7032b6e805f904d",
              "status": "affected",
              "version": "2481b5da9c6b2ee1fde55a1c29eb2ca377145a10",
              "versionType": "git"
            },
            {
              "lessThan": "023c1f2f0609218103cbcb48e0104b144d4a16dc",
              "status": "affected",
              "version": "2481b5da9c6b2ee1fde55a1c29eb2ca377145a10",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/scan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.5"
            },
            {
              "lessThan": "6.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.91",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.29",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.91",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.29",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.7",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation\n\nCurrently during the multi-link element defragmentation process, the\nmulti-link element length added to the total IEs length when calculating\nthe length of remaining IEs after the multi-link element in\ncfg80211_defrag_mle(). This could lead to out-of-bounds access if the\nmulti-link element or its corresponding fragment elements are the last\nelements in the IEs buffer.\n\nTo address this issue, correctly calculate the remaining IEs length by\ndeducting the multi-link element end offset from total IEs end offset."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - The vulnerable parser consumes IEs straight out of a received 802.11 probe response frame (`cfg80211_inform_bss_frame_data()` \u2192 `cfg80211_defrag_mle()`), so the attacker only needs to inject a crafted management frame within radio range of the victim STA. This is the standard WiFi frame-injection adjacency requirement, not a routable network path.\nAC:L - The attacker fully controls the frame contents and can deterministically place a valid Basic Multi-Link element as the final IE, which makes the fragment-scan loop dereference memory exactly at `ie + ielen` on its first iteration \u2014 no race, no memory-layout luck required for the overread itself. Probe responses are accepted whenever the STA scans (foreground or PNO/sched scan), and MAC randomization or simply answering an observed probe request satisfies the DA check in `ieee80211_scan_accept_presp()`.\nPR:N - Scan-result parsing happens before any authentication or association, so an unauthenticated attacker with no credentials, no key material, and no prior relationship to the victim can reach the code. The attacker needs no account on the target and no privileges of any kind.\nUI:N - Linux/Android stations run periodic background scans and scheduled scans (PNO) automatically via wpa_supplicant/NetworkManager without any user action, and every such scan feeds received probe responses into the vulnerable path. No victim click, mount, or connection attempt is needed.\nS:U - The out-of-bounds read and any resulting fault occur entirely within the kernel\u0027s own security authority on the affected host; no VM, IOMMU, container, or sandbox boundary is crossed.\nC:H - The loop reads up to `p + 2*mle-\u003edatalen` bytes (potentially ~2.5 KB for a maximum-length probe response with the MLE placed last) beyond the end of the receive buffer into adjacent kernel heap memory \u2014 far more than a strictly bounded few-byte overread. The out-of-bounds bytes are actively interpreted as element headers and steer loop continuation and the computed allocation size, so attacker-observable behaviour depends on kernel memory the attacker must not be able to read.\nI:N - The defect is confined to the length computation of a read-only scanning loop; the erroneous bound can only over-estimate `buf_len`, and the subsequent `cfg80211_defragment_element()` call still uses the correct `ielen` and rejects overflow with `-ENOSPC`, so no out-of-bounds write or corruption of kernel state occurs.\nA:H - The walk can run kilobytes past the receive buffer into unmapped or guarded memory \u2014 KFENCE (default-enabled on Android GKI and several distro kernels), KASAN, and DEBUG_PAGEALLOC turn this into an unhandled kernel page fault/oops. The attacker can retransmit the crafted probe response indefinitely with no authentication, so repeated triggering makes a kernel panic a practical denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:58:42.573Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/73dde269a1a43e6b1aa92eba13ad2df58bfdd38e"
        },
        {
          "url": "https://git.kernel.org/stable/c/9423f6da825172b8dc60d4688ed3d147291c3be9"
        },
        {
          "url": "https://git.kernel.org/stable/c/e1c6d0c6199bd5f4cfc7a66ae7032b6e805f904d"
        },
        {
          "url": "https://git.kernel.org/stable/c/023c1f2f0609218103cbcb48e0104b144d4a16dc"
        }
      ],
      "title": "wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-37973",
    "datePublished": "2025-05-20T16:47:19.074Z",
    "dateReserved": "2025-04-16T04:51:23.975Z",
    "dateUpdated": "2026-08-05T11:58:42.573Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…