CVE-2025-37973 (GCVE-0-2025-37973)

Vulnerability from cvelistv5 – Published: 2025-05-20 16:47 – Updated: 2026-08-05 11:58
VLAI
Title
wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation
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.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10 , < 73dde269a1a43e6b1aa92eba13ad2df58bfdd38e (git)
Affected: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10 , < 9423f6da825172b8dc60d4688ed3d147291c3be9 (git)
Affected: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10 , < e1c6d0c6199bd5f4cfc7a66ae7032b6e805f904d (git)
Affected: 2481b5da9c6b2ee1fde55a1c29eb2ca377145a10 , < 023c1f2f0609218103cbcb48e0104b144d4a16dc (git)
Create a notification for this product.
Linux Linux Affected: 6.5
Unaffected: 0 , < 6.5 (semver)
Unaffected: 6.6.91 , ≤ 6.6.* (semver)
Unaffected: 6.12.29 , ≤ 6.12.* (semver)
Unaffected: 6.14.7 , ≤ 6.14.* (semver)
Unaffected: 6.15 , ≤ * (original_commit_for_fix)
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",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-37973",
      "date": "2026-08-05",
      "epss": "0.00222",
      "percentile": "0.1275"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-18T03:00:59.000Z",
      "cve": "CVE-2025-37973",
      "id": "msrc_CVE-2025-37973",
      "initial_release_date": "2025-05-02T00:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-37973.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-37973\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-05-20T17:15:47.870\",\"lastModified\":\"2026-07-30T06:22:41.077\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"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.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wifi: cfg80211: correcci\u00f3n de acceso fuera de los l\u00edmites durante la desfragmentaci\u00f3n de elementos multienlace. Actualmente, durante el proceso de desfragmentaci\u00f3n de elementos multienlace, la longitud de este elemento se sumaba a la longitud total de los elementos de entrada (IE) al calcular la longitud de los elementos de entrada restantes despu\u00e9s del elemento multienlace en cfg80211_defrag_mle(). Esto podr\u00eda provocar un acceso fuera de los l\u00edmites si el elemento multienlace o sus elementos de fragmento correspondientes son los \u00faltimos elementos en el b\u00fafer de los elementos de entrada. Para solucionar este problema, calcule correctamente la longitud de los elementos de entrada restantes restando el desplazamiento final del elemento multienlace del desplazamiento final total de los elementos de entrada.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/wireless/scan.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"2481b5da9c6b2ee1fde55a1c29eb2ca377145a10\",\"lessThan\":\"73dde269a1a43e6b1aa92eba13ad2df58bfdd38e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2481b5da9c6b2ee1fde55a1c29eb2ca377145a10\",\"lessThan\":\"9423f6da825172b8dc60d4688ed3d147291c3be9\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2481b5da9c6b2ee1fde55a1c29eb2ca377145a10\",\"lessThan\":\"e1c6d0c6199bd5f4cfc7a66ae7032b6e805f904d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2481b5da9c6b2ee1fde55a1c29eb2ca377145a10\",\"lessThan\":\"023c1f2f0609218103cbcb48e0104b144d4a16dc\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/wireless/scan.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.5\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.5\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.91\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.29\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14.7\",\"lessThanOrEqual\":\"6.14.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15\",\"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:N/A:H\",\"baseScore\":8.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"ADJACENT_NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.8,\"impactScore\":5.2},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-125\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.5\",\"versionEndExcluding\":\"6.6.91\",\"matchCriteriaId\":\"E5C48E40-569A-47AB-BC9D-E3D68A687292\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.29\",\"matchCriteriaId\":\"7215ABCF-8EB1-46CD-8872-8BCE4890E579\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.14.7\",\"matchCriteriaId\":\"5715A6F5-A34A-4B27-8A64-82825E963995\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"8D465631-2980-487A-8E65-40AE2B9F8ED1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4C9D071F-B28E-46EC-AC61-22B913390211\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"13FC0DDE-E513-465E-9E81-515702D49B74\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"8C7B5B0E-4EEB-48F5-B4CF-0935A7633845\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"2D240580-3048-49B2-9E27-F115A9DF8224\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/023c1f2f0609218103cbcb48e0104b144d4a16dc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/73dde269a1a43e6b1aa92eba13ad2df58bfdd38e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9423f6da825172b8dc60d4688ed3d147291c3be9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e1c6d0c6199bd5f4cfc7a66ae7032b6e805f904d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T09:22:42+00:00",
      "cve": "CVE-2025-37973",
      "id": "CVE-2025-37973",
      "initial_release_date": "2025-05-20T00:00:00+00:00",
      "product_status:known_affected": "226",
      "product_status:known_not_affected": "48",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-37973.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…