CVE-2023-54135 (GCVE-0-2023-54135)
Vulnerability from cvelistv5
Published
2025-12-24 13:06
Modified
2026-08-05 09:17
Summary
In the Linux kernel, the following vulnerability has been resolved: maple_tree: fix potential out-of-bounds access in mas_wr_end_piv() Check the write offset end bounds before using it as the offset into the pivot array. This avoids a possible out-of-bounds access on the pivot array if the write extends to the last slot in the node, in which case the node maximum should be used as the end pivot. akpm: this doesn't affect any current callers, but new users of mapletree may encounter this problem if backported into earlier kernels, so let's fix it in -stable kernels in case of this.
Impacted products
Vendor Product Version
Linux Linux Version: 54a611b605901c7d5d05b6b8f5d04a6ceb0962aa
Version: 54a611b605901c7d5d05b6b8f5d04a6ceb0962aa
Version: 54a611b605901c7d5d05b6b8f5d04a6ceb0962aa
Version: 54a611b605901c7d5d05b6b8f5d04a6ceb0962aa
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "lib/maple_tree.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "4e2ad53ababeaac44d71162650984abfe783960c",
              "status": "affected",
              "version": "54a611b605901c7d5d05b6b8f5d04a6ceb0962aa",
              "versionType": "git"
            },
            {
              "lessThan": "dc4751bd4aba01ccfc02f91adfeee0ba4cda405c",
              "status": "affected",
              "version": "54a611b605901c7d5d05b6b8f5d04a6ceb0962aa",
              "versionType": "git"
            },
            {
              "lessThan": "f5fcf6555a2a4f32947d17b92b173837cc652891",
              "status": "affected",
              "version": "54a611b605901c7d5d05b6b8f5d04a6ceb0962aa",
              "versionType": "git"
            },
            {
              "lessThan": "cd00dd2585c4158e81fdfac0bbcc0446afbad26d",
              "status": "affected",
              "version": "54a611b605901c7d5d05b6b8f5d04a6ceb0962aa",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "lib/maple_tree.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.1"
            },
            {
              "lessThan": "6.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.37",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.4.*",
              "status": "unaffected",
              "version": "6.4.1",
              "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.37",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.11",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4.1",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmaple_tree: fix potential out-of-bounds access in mas_wr_end_piv()\n\nCheck the write offset end bounds before using it as the offset into the\npivot array.  This avoids a possible out-of-bounds access on the pivot\narray if the write extends to the last slot in the node, in which case the\nnode maximum should be used as the end pivot.\n\nakpm: this doesn\u0027t affect any current callers, but new users of mapletree\nmay encounter this problem if backported into earlier kernels, so let\u0027s\nfix it in -stable kernels in case of this."
        }
      ],
      "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 maple tree write path is reached only through local syscalls \u2014 `mmap()`, `munmap()`, `mprotect()`, `mremap()`, `brk()` via `vma_iter_store*()`/`vma_iter_clear*()` \u2192 `mas_store_gfp()`/`mas_store_prealloc()` \u2192 `mas_wr_end_piv()`. The other in-tree users (btrfs send LRU cache, regcache-maple) are likewise local/driver-internal, with no remote packet-processing path.\nAC:L - The trigger is a completely full 16-slot leaf node plus a store whose range starts in an earlier slot and ends inside the final slot \u2014 a tree shape an unprivileged attacker deterministically constructs by creating thousands of non-mergeable VMAs and then unmapping a spanning range. No race and no memory layout outside the attacker\u0027s influence is involved.\nPR:L - Any unprivileged local process reaches the code with plain `mmap()`/`munmap()` calls on its own address space; there is no capability check, LSM gate, or namespace requirement anywhere along `do_vmi_align_munmap()` \u2192 `vma_iter_clear_gfp()` \u2192 `mas_wr_store_entry()`.\nUI:N - The attacking process triggers the faulty write path entirely through its own address-space syscalls; no victim action, mount, or file open is required.\nS:U - The out-of-bounds pivot read and the resulting maple-tree corruption are confined to the kernel\u0027s own memory-management structures, which are the same security authority as the compromised kernel. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - The array overrun reads a live kernel pointer (`slot[0]`, a `struct vm_area_struct *`) and turns it into a range boundary, and the resulting `mas-\u003elast`/`new_end` corruption leaves stale VMA pointers and bogus ranges in the VMA tree \u2014 memory corruption that can be leveraged into an arbitrary-read primitive, and whose pivot values are indirectly observable through mmap gap placement.\nI:H - A bogus `end_piv` propagates into `mas_wr_extend_null()`, which can set `mas-\u003elast` to a kernel heap pointer value beyond the node\u0027s `mas-\u003emax`, and into `mas_wr_node_store()`\u0027s `new_end` computation, causing the store to overwrite the wrong ranges and leave stale slots \u2014 VMA-tree corruption exploitable for use-after-free and arbitrary-write primitives.\nA:H - Writing a range past the node maximum and leaving stale slots violates maple-tree invariants, producing `MT_BUG_ON`/`VM_BUG_ON` hits, oopses, or use-after-free on `vm_area_struct` during any subsequent tree walk or address-space teardown, crashing the kernel."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:17:33.212Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4e2ad53ababeaac44d71162650984abfe783960c"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc4751bd4aba01ccfc02f91adfeee0ba4cda405c"
        },
        {
          "url": "https://git.kernel.org/stable/c/f5fcf6555a2a4f32947d17b92b173837cc652891"
        },
        {
          "url": "https://git.kernel.org/stable/c/cd00dd2585c4158e81fdfac0bbcc0446afbad26d"
        }
      ],
      "title": "maple_tree: fix potential out-of-bounds access in mas_wr_end_piv()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54135",
    "datePublished": "2025-12-24T13:06:51.329Z",
    "dateReserved": "2025-12-24T13:02:52.522Z",
    "dateUpdated": "2026-08-05T09:17:33.212Z",
    "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…