CVE-2026-80718 (GCVE-0-2026-80718)

Vulnerability from cvelistv5 – Published: 2026-08-28 06:53 – Updated: 2026-08-29 06:22
VLAI
Title
mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()
Summary
In the Linux kernel, the following vulnerability has been resolved: mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk() In pcpu_create_chunk(), nr_pages is the total contiguous backing allocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated() uses it to set chunk->populated, whose size is pcpu_unit_pages, bitmap. Since bit N in chunk->populated means page offset N inside every unit is backed. When nr_units > 1, the function writes beyond chunk->populated. Fix it by using chunk->nr_pages. It also fixes the global pcpu_nr_empty_pop_pages accounting, since pcpu_balance_free() only iterates up to chunk->nr_pages. Commit a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap properly") introduced the bitmap overflow issue. Later, commit b539b87fed37f ("percpu: implmeent pcpu_nr_empty_pop_pages and chunk->nr_populated") added pcpu_nr_empty_pop_pages and caused the accounting issue.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 5f43d2c1bea280dcdfabaf156c25e7402fb8039f (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 92c43ac3c2b09eb16162e8144e73c00b7c3e29d6 (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 6fc7da2a052f2825fff785e860e67183f5acaaba (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 01504da375f5b19df195cb1cb1cf1dd184318f97 (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < a6940b84c8c035da465b7165fdfcfb005545724e (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 32134cf9211b83bed9076d0739c5906fbea4c763 (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 5c7fc39bf19abb38a996aaad77b3e3a8f48581c3 (git)
Affected: a63d4ac4ab6094c051a5a240260d16117a7a2f86 , < 89b1b79c308818a715e75f28744b70d8940a07c9 (git)
guessed Create a notification for this product.
Linux Linux Affected: 3.18
Unaffected: 0 , < 3.18 (semver)
Unaffected: 5.10.265 , ≤ 5.10.* (semver)
Unaffected: 5.15.216 , ≤ 5.15.* (semver)
Unaffected: 6.1.183 , ≤ 6.1.* (semver)
Unaffected: 6.6.151 , ≤ 6.6.* (semver)
Unaffected: 6.12.103 , ≤ 6.12.* (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.8 , ≤ 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": [
            "mm/percpu-km.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5f43d2c1bea280dcdfabaf156c25e7402fb8039f",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "92c43ac3c2b09eb16162e8144e73c00b7c3e29d6",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "6fc7da2a052f2825fff785e860e67183f5acaaba",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "01504da375f5b19df195cb1cb1cf1dd184318f97",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "a6940b84c8c035da465b7165fdfcfb005545724e",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "32134cf9211b83bed9076d0739c5906fbea4c763",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "5c7fc39bf19abb38a996aaad77b3e3a8f48581c3",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            },
            {
              "lessThan": "89b1b79c308818a715e75f28744b70d8940a07c9",
              "status": "affected",
              "version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "mm/percpu-km.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.18"
            },
            {
              "lessThan": "3.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.265",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.216",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.151",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "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": "5.10.265",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.216",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.151",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.103",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "3.18",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()\n\nIn pcpu_create_chunk(), nr_pages is the total contiguous backing\nallocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated()\nuses it to set chunk-\u003epopulated, whose size is pcpu_unit_pages, bitmap. \nSince bit N in chunk-\u003epopulated means page offset N inside every unit is\nbacked.  When nr_units \u003e 1, the function writes beyond chunk-\u003epopulated. \nFix it by using chunk-\u003enr_pages.\n\nIt also fixes the global pcpu_nr_empty_pop_pages accounting, since\npcpu_balance_free() only iterates up to chunk-\u003enr_pages.\n\nCommit a63d4ac4ab609 (\"percpu: make percpu-km set chunk-\u003epopulated bitmap\nproperly\") introduced the bitmap overflow issue.  Later, commit\nb539b87fed37f (\"percpu: implmeent pcpu_nr_empty_pop_pages and\nchunk-\u003enr_populated\") added pcpu_nr_empty_pop_pages and caused the\naccounting issue."
        }
      ],
      "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 - pcpu_create_chunk() is reached only when the kernel dynamic percpu allocator creates a new chunk via pcpu_alloc_noprof() or pcpu_balance_populated(); both require local syscalls driving __alloc_percpu() exhaustion, and percpu-km applies only on NOMMU/UP kernels with no remote packet path into this code.\nAC:L - On affected SMP NOMMU builds where nr_units\u003e1, an attacker can deterministically force pcpu_create_chunk() by spraying percpu-consuming allocations (e.g., repeated socket() or BPF percpu map creation) until existing chunks are full; no race or victim state outside attacker control is needed.\nPR:L - Dynamic percpu allocation is reachable with basic local user access; unprivileged attackers can obtain effective capability via user namespaces (unshare -Urn) plus CAP_NET_RAW-class socket paths or CAP_BPF where enabled, matching percpu-spray patterns in similar allocator CVEs.\nUI:N - The attacker drives percpu exhaustion and new-chunk creation entirely from its own processes via repeated local syscalls; no victim mount, file open, or administrator interaction is required.\nS:U - The bitmap overflow corrupts kernel kmalloc slab objects and percpu bookkeeping within the same kernel security domain; this is standard kernel heap corruption, not a VM, IOMMU, or sandbox boundary escape.\nC:H - bitmap_set() writes up to (nr_units*pcpu_unit_pages) bits into chunk-\u003epopulated[] sized for only pcpu_unit_pages, overflowing the kzalloc allocation in pcpu_alloc_chunk() and exposing or corrupting adjacent kernel heap memory.\nI:H - The same out-of-bounds write corrupts neighboring slab objects and inflates nr_populated/nr_empty_pop_pages accounting, providing attacker-influenced heap metadata corruption exploitable for arbitrary kernel writes and privilege escalation.\nA:H - Slab overflow during chunk initialization can immediately oops or panic the kernel and leaves corrupted allocator state that causes subsequent percpu operations to fault, consistent with rubric guidance for heap corruption bugs."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-29T06:22:34.556Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/5f43d2c1bea280dcdfabaf156c25e7402fb8039f"
        },
        {
          "url": "https://git.kernel.org/stable/c/92c43ac3c2b09eb16162e8144e73c00b7c3e29d6"
        },
        {
          "url": "https://git.kernel.org/stable/c/6fc7da2a052f2825fff785e860e67183f5acaaba"
        },
        {
          "url": "https://git.kernel.org/stable/c/01504da375f5b19df195cb1cb1cf1dd184318f97"
        },
        {
          "url": "https://git.kernel.org/stable/c/a6940b84c8c035da465b7165fdfcfb005545724e"
        },
        {
          "url": "https://git.kernel.org/stable/c/32134cf9211b83bed9076d0739c5906fbea4c763"
        },
        {
          "url": "https://git.kernel.org/stable/c/5c7fc39bf19abb38a996aaad77b3e3a8f48581c3"
        },
        {
          "url": "https://git.kernel.org/stable/c/89b1b79c308818a715e75f28744b70d8940a07c9"
        }
      ],
      "title": "mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80718",
    "datePublished": "2026-08-28T06:53:15.490Z",
    "dateReserved": "2026-08-26T14:34:25.788Z",
    "dateUpdated": "2026-08-29T06:22:34.556Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80718",
      "date": "2026-08-28",
      "epss": "0.00164",
      "percentile": "0.05889"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-80718\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-28T08:16:57.563\",\"lastModified\":\"2026-08-29T07:16:53.323\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()\\n\\nIn pcpu_create_chunk(), nr_pages is the total contiguous backing\\nallocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated()\\nuses it to set chunk-\u003epopulated, whose size is pcpu_unit_pages, bitmap. \\nSince bit N in chunk-\u003epopulated means page offset N inside every unit is\\nbacked.  When nr_units \u003e 1, the function writes beyond chunk-\u003epopulated. \\nFix it by using chunk-\u003enr_pages.\\n\\nIt also fixes the global pcpu_nr_empty_pop_pages accounting, since\\npcpu_balance_free() only iterates up to chunk-\u003enr_pages.\\n\\nCommit a63d4ac4ab609 (\\\"percpu: make percpu-km set chunk-\u003epopulated bitmap\\nproperly\\\") introduced the bitmap overflow issue.  Later, commit\\nb539b87fed37f (\\\"percpu: implmeent pcpu_nr_empty_pop_pages and\\nchunk-\u003enr_populated\\\") added pcpu_nr_empty_pop_pages and caused the\\naccounting issue.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"mm/percpu-km.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"5f43d2c1bea280dcdfabaf156c25e7402fb8039f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"92c43ac3c2b09eb16162e8144e73c00b7c3e29d6\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"6fc7da2a052f2825fff785e860e67183f5acaaba\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"01504da375f5b19df195cb1cb1cf1dd184318f97\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"a6940b84c8c035da465b7165fdfcfb005545724e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"32134cf9211b83bed9076d0739c5906fbea4c763\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"5c7fc39bf19abb38a996aaad77b3e3a8f48581c3\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a63d4ac4ab6094c051a5a240260d16117a7a2f86\",\"lessThan\":\"89b1b79c308818a715e75f28744b70d8940a07c9\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"mm/percpu-km.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3.18\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"3.18\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.265\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.216\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.183\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.151\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.103\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.44\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.8\",\"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:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/01504da375f5b19df195cb1cb1cf1dd184318f97\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/32134cf9211b83bed9076d0739c5906fbea4c763\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/5c7fc39bf19abb38a996aaad77b3e3a8f48581c3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/5f43d2c1bea280dcdfabaf156c25e7402fb8039f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/6fc7da2a052f2825fff785e860e67183f5acaaba\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/89b1b79c308818a715e75f28744b70d8940a07c9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/92c43ac3c2b09eb16162e8144e73c00b7c3e29d6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a6940b84c8c035da465b7165fdfcfb005545724e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}



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…