CVE-2023-53570 (GCVE-0-2023-53570)
Vulnerability from cvelistv5
Published
2025-10-04 15:17
Modified
2026-08-05 09:14
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems() nl80211_parse_mbssid_elems() uses a u8 variable num_elems to count the number of MBSSID elements in the nested netlink attribute attrs, which can lead to an integer overflow if a user of the nl80211 interface specifies 256 or more elements in the corresponding attribute in userspace. The integer overflow can lead to a heap buffer overflow as num_elems determines the size of the trailing array in elems, and this array is thereafter written to for each element in attrs. Note that this vulnerability only affects devices with the wiphy->mbssid_max_interfaces member set for the wireless physical device struct in the device driver, and can only be triggered by a process with CAP_NET_ADMIN capabilities. Fix this by checking for a maximum of 255 elements in attrs.
Impacted products
Vendor Product Version
Linux Linux Version: dc1e3cb8da8b414b37208b2fb6755fef8122504b
Version: dc1e3cb8da8b414b37208b2fb6755fef8122504b
Version: dc1e3cb8da8b414b37208b2fb6755fef8122504b
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/nl80211.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "e642eb67b8c10dcce758d549cc81564116e0fa49",
              "status": "affected",
              "version": "dc1e3cb8da8b414b37208b2fb6755fef8122504b",
              "versionType": "git"
            },
            {
              "lessThan": "7d09f9f255a5f78578deba5454923072bb53b16c",
              "status": "affected",
              "version": "dc1e3cb8da8b414b37208b2fb6755fef8122504b",
              "versionType": "git"
            },
            {
              "lessThan": "6311071a056272e1e761de8d0305e87cc566f734",
              "status": "affected",
              "version": "dc1e3cb8da8b414b37208b2fb6755fef8122504b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/wireless/nl80211.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.16"
            },
            {
              "lessThan": "5.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.46",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.4.*",
              "status": "unaffected",
              "version": "6.4.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.5",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.46",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4.11",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems()\n\nnl80211_parse_mbssid_elems() uses a u8 variable num_elems to count the\nnumber of MBSSID elements in the nested netlink attribute attrs, which can\nlead to an integer overflow if a user of the nl80211 interface specifies\n256 or more elements in the corresponding attribute in userspace. The\ninteger overflow can lead to a heap buffer overflow as num_elems determines\nthe size of the trailing array in elems, and this array is thereafter\nwritten to for each element in attrs.\n\nNote that this vulnerability only affects devices with the\nwiphy-\u003embssid_max_interfaces member set for the wireless physical device\nstruct in the device driver, and can only be triggered by a process with\nCAP_NET_ADMIN capabilities.\n\nFix this by checking for a maximum of 255 elements in attrs."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerability is triggered by crafting an nl80211 generic-netlink message (NL80211_CMD_START_AP/SET_BEACON/CHANNEL_SWITCH) from local userspace; despite being in the wireless subsystem, no over-the-air frame is involved. Per kernel scoring guidance, netlink-reachable bugs are Local.\nAC:L - The attacker fully and deterministically controls the trigger by placing 256 nested attributes in NL80211_ATTR_MBSSID_ELEMS \u2014 no race, no timing, no memory-layout condition outside their influence, and the overflow size and contents are directly tunable via the attribute count and lengths.\nPR:L - The gate is GENL_UNS_ADMIN_PERM, i.e. netlink_ns_capable(net-\u003euser_ns, CAP_NET_ADMIN), which an unprivileged user obtains via `unshare -Urn`; mac80211_hwsim\u0027s radio-creation command is gated identically and places the new wiphy (with mbssid_max_interfaces = 8) in the caller\u0027s netns, giving a complete unprivileged local path.\nUI:N - The attacker performs every step themselves \u2014 create/select an AP-capable interface and issue the netlink command \u2014 with no action required from any other user or administrator.\nS:U - The heap corruption occurs in kernel slab memory within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - A 4 KB controlled out-of-bounds heap write lets the attacker overwrite adjacent objects\u0027 pointers and length fields, which is readily leveraged into arbitrary kernel-memory disclosure, so confidentiality impact is High.\nI:H - This is a large, attacker-sized out-of-bounds heap write with a fully attacker-controlled size_t field per entry, providing a strong slab-corruption primitive suitable for control-flow hijack and privilege escalation.\nA:H - Writing 4096 bytes past an 8-byte kmalloc allocation reliably corrupts slab metadata and neighbouring objects, producing kernel oops/panic and complete loss of availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:14:53.243Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/e642eb67b8c10dcce758d549cc81564116e0fa49"
        },
        {
          "url": "https://git.kernel.org/stable/c/7d09f9f255a5f78578deba5454923072bb53b16c"
        },
        {
          "url": "https://git.kernel.org/stable/c/6311071a056272e1e761de8d0305e87cc566f734"
        }
      ],
      "title": "wifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53570",
    "datePublished": "2025-10-04T15:17:11.525Z",
    "dateReserved": "2025-10-04T15:14:15.925Z",
    "dateUpdated": "2026-08-05T09:14:53.243Z",
    "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…