CVE-2024-35937 (GCVE-0-2024-35937)
Vulnerability from cvelistv5
Published
2024-05-19 10:10
Modified
2026-08-05 11:31
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: cfg80211: check A-MSDU format more carefully If it looks like there's another subframe in the A-MSDU but the header isn't fully there, we can end up reading data out of bounds, only to discard later. Make this a bit more careful and check if the subframe header can even be present.
Impacted products
Vendor Product Version
Linux Linux Version: 966d5c2c22edcc0ab3d519af39f91a29329c979a
Version: 6e4c0d0460bd32ca9244dff3ba2d2da27235de11
Version: 6e4c0d0460bd32ca9244dff3ba2d2da27235de11
Version: 6e4c0d0460bd32ca9244dff3ba2d2da27235de11
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T21:55:02.670Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/5d7a8585fbb31e88fb2a0f581b70667d3300d1e9"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/16da1e1dac23be45ef6e23c41b1508c400e6c544"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9ad7974856926129f190ffbe3beea78460b3b7cc"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35937",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:40:52.262285Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:14.984Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/util.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9eb3bc0973d084423a6df21cf2c74692ff05647e",
              "status": "affected",
              "version": "966d5c2c22edcc0ab3d519af39f91a29329c979a",
              "versionType": "git"
            },
            {
              "lessThan": "5d7a8585fbb31e88fb2a0f581b70667d3300d1e9",
              "status": "affected",
              "version": "6e4c0d0460bd32ca9244dff3ba2d2da27235de11",
              "versionType": "git"
            },
            {
              "lessThan": "16da1e1dac23be45ef6e23c41b1508c400e6c544",
              "status": "affected",
              "version": "6e4c0d0460bd32ca9244dff3ba2d2da27235de11",
              "versionType": "git"
            },
            {
              "lessThan": "9ad7974856926129f190ffbe3beea78460b3b7cc",
              "status": "affected",
              "version": "6e4c0d0460bd32ca9244dff3ba2d2da27235de11",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/util.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.3"
            },
            {
              "lessThan": "6.3",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.27",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.27",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.6",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: check A-MSDU format more carefully\n\nIf it looks like there\u0027s another subframe in the A-MSDU\nbut the header isn\u0027t fully there, we can end up reading\ndata out of bounds, only to discard later. Make this a\nbit more careful and check if the subframe header can\neven be present."
        }
      ],
      "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 malformed A-MSDU is delivered over the air and parsed in the cfg80211/mac80211 receive path, so the attacker must be within radio range of the victim\u0027s WiFi interface (or an associated/injecting peer on the same BSS or mesh). Per WiFi frame-injection guidance this is Adjacent.\nAC:L - The attacker fully controls the frame: setting the A-MSDU-present bit and truncating the payload so fewer than 14/15 bytes remain deterministically drives the unchecked skb_copy_bits() and the resulting uninitialized/out-of-bounds header parse, and frames can be replayed indefinitely to groom favorable stack contents.\nPR:N - No credentials or privileges are needed \u2014 ieee80211_rx_h_amsdu() only requires an rx-\u003esta entry, which any peer on an open hotspot, open mesh, or a spoofed associated-STA address satisfies, and the parse happens before any payload validation.\nUI:N - The frame is processed automatically by the kernel\u0027s WiFi receive path; no action by the device owner or any user is required.\nS:U - The out-of-bounds/uninitialized read and its consequences stay entirely within the kernel\u0027s own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The code reads out of bounds / uses uninitialized kernel stack memory, and on the mesh path those 14 bytes are pushed as the Ethernet header of a frame that is delivered up the stack or forwarded back over the air, giving a repeatable kernel-memory disclosure primitive rather than a strictly bounded few-byte read.\nI:N - The defect is purely a read of out-of-bounds/uninitialized memory; all subsequent length computations remain bounds-checked (__ieee80211_amsdu_copy() rejects len \u003e skb-\u003elen - offset), so no out-of-bounds write or control-flow corruption primitive is available.\nA:H - An attacker-triggered out-of-bounds read in the WiFi RX softirq path oopses the kernel on hardened/instrumented builds (KASAN/KMSAN, panic_on_warn), and the resulting garbage-derived frame lengths and headers destabilize A-MSDU decapsulation and mesh forwarding, so a remote crash is achievable."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:31:04.899Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9eb3bc0973d084423a6df21cf2c74692ff05647e"
        },
        {
          "url": "https://git.kernel.org/stable/c/5d7a8585fbb31e88fb2a0f581b70667d3300d1e9"
        },
        {
          "url": "https://git.kernel.org/stable/c/16da1e1dac23be45ef6e23c41b1508c400e6c544"
        },
        {
          "url": "https://git.kernel.org/stable/c/9ad7974856926129f190ffbe3beea78460b3b7cc"
        }
      ],
      "title": "wifi: cfg80211: check A-MSDU format more carefully",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35937",
    "datePublished": "2024-05-19T10:10:43.615Z",
    "dateReserved": "2024-05-17T13:50:33.131Z",
    "dateUpdated": "2026-08-05T11:31:04.899Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/5d7a8585fbb31e88fb2a0f581b70667d3300d1e9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/16da1e1dac23be45ef6e23c41b1508c400e6c544\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/9ad7974856926129f190ffbe3beea78460b3b7cc\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-03T21:55:02.670Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35937\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:40:52.262285Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:15.706Z\"}}], \"cna\": {\"title\": \"wifi: cfg80211: check A-MSDU format more carefully\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:A - The malformed A-MSDU is delivered over the air and parsed in the cfg80211/mac80211 receive path, so the attacker must be within radio range of the victim\u0027s WiFi interface (or an associated/injecting peer on the same BSS or mesh). Per WiFi frame-injection guidance this is Adjacent.\\nAC:L - The attacker fully controls the frame: setting the A-MSDU-present bit and truncating the payload so fewer than 14/15 bytes remain deterministically drives the unchecked skb_copy_bits() and the resulting uninitialized/out-of-bounds header parse, and frames can be replayed indefinitely to groom favorable stack contents.\\nPR:N - No credentials or privileges are needed \\u2014 ieee80211_rx_h_amsdu() only requires an rx-\u003esta entry, which any peer on an open hotspot, open mesh, or a spoofed associated-STA address satisfies, and the parse happens before any payload validation.\\nUI:N - The frame is processed automatically by the kernel\u0027s WiFi receive path; no action by the device owner or any user is required.\\nS:U - The out-of-bounds/uninitialized read and its consequences stay entirely within the kernel\u0027s own security authority; no VM, IOMMU, or sandbox boundary is crossed.\\nC:H - The code reads out of bounds / uses uninitialized kernel stack memory, and on the mesh path those 14 bytes are pushed as the Ethernet header of a frame that is delivered up the stack or forwarded back over the air, giving a repeatable kernel-memory disclosure primitive rather than a strictly bounded few-byte read.\\nI:N - The defect is purely a read of out-of-bounds/uninitialized memory; all subsequent length computations remain bounds-checked (__ieee80211_amsdu_copy() rejects len \u003e skb-\u003elen - offset), so no out-of-bounds write or control-flow corruption primitive is available.\\nA:H - An attacker-triggered out-of-bounds read in the WiFi RX softirq path oopses the kernel on hardened/instrumented builds (KASAN/KMSAN, panic_on_warn), and the resulting garbage-derived frame lengths and headers destabilize A-MSDU decapsulation and mesh forwarding, so a remote crash is achievable.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"966d5c2c22edcc0ab3d519af39f91a29329c979a\", \"lessThan\": \"9eb3bc0973d084423a6df21cf2c74692ff05647e\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"6e4c0d0460bd32ca9244dff3ba2d2da27235de11\", \"lessThan\": \"5d7a8585fbb31e88fb2a0f581b70667d3300d1e9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"6e4c0d0460bd32ca9244dff3ba2d2da27235de11\", \"lessThan\": \"16da1e1dac23be45ef6e23c41b1508c400e6c544\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"6e4c0d0460bd32ca9244dff3ba2d2da27235de11\", \"lessThan\": \"9ad7974856926129f190ffbe3beea78460b3b7cc\", \"versionType\": \"git\"}], \"programFiles\": [\"net/wireless/util.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.3\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.3\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.6.27\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.6\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"net/wireless/util.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/9eb3bc0973d084423a6df21cf2c74692ff05647e\"}, {\"url\": \"https://git.kernel.org/stable/c/5d7a8585fbb31e88fb2a0f581b70667d3300d1e9\"}, {\"url\": \"https://git.kernel.org/stable/c/16da1e1dac23be45ef6e23c41b1508c400e6c544\"}, {\"url\": \"https://git.kernel.org/stable/c/9ad7974856926129f190ffbe3beea78460b3b7cc\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nwifi: cfg80211: check A-MSDU format more carefully\\n\\nIf it looks like there\u0027s another subframe in the A-MSDU\\nbut the header isn\u0027t fully there, we can end up reading\\ndata out of bounds, only to discard later. Make this a\\nbit more careful and check if the subframe header can\\neven be present.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.27\", \"versionStartIncluding\": \"6.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.6\", \"versionStartIncluding\": \"6.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.3\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:31:04.899Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-35937\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:31:04.899Z\", \"dateReserved\": \"2024-05-17T13:50:33.131Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-19T10:10:43.615Z\", \"assignerShortName\": \"Linux\"}",
      "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…