CVE-2026-45935 (GCVE-0-2026-45935)
Vulnerability from cvelistv5
Published
2026-05-27 12:17
Modified
2026-08-05 12:28
Summary
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: Fix slab-out-of-bounds read in DeleteIndexEntryRoot In the 'DeleteIndexEntryRoot' case of the 'do_action' function, the entry size ('esize') is retrieved from the log record without adequate bounds checking. Specifically, the code calculates the end of the entry ('e2') using: e2 = Add2Ptr(e1, esize); It then calculates the size for memmove using 'PtrOffset(e2, ...)', which subtracts the end pointer from the buffer limit. If 'esize' is maliciously large, 'e2' exceeds the used buffer size. This results in a negative offset which, when cast to size_t for memmove, interprets as a massive unsigned integer, leading to a heap buffer overflow. This commit adds a check to ensure that the entry size ('esize') strictly fits within the remaining used space of the index header before performing memory operations.
Impacted products
Vendor Product Version
Linux Linux Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Version: b46acd6a6a627d876898e1c84d3f84902264b445
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ntfs3/fslog.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "36c03f7f177b34d51f1cf1d2304b1074607bf4b0",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "b271c9cb85927210b1b799e55ee7f702d12b4336",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "a584b9d1059b29e97e17c919274e9adfb846f2a0",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "c065541b71b79874c83d418a9acd18ad5826339b",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "78942172d5bff4d4afed8674abc09cc560ce44a0",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "f3b437a4c3e022a1449658ae9f3dd34859894513",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            },
            {
              "lessThan": "b2bc7c44ed1779fc9eaab9a186db0f0d01439622",
              "status": "affected",
              "version": "b46acd6a6a627d876898e1c84d3f84902264b445",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/ntfs3/fslog.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.202",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.165",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.128",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.202",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.165",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.128",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.75",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.14",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.4",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: Fix slab-out-of-bounds read in DeleteIndexEntryRoot\n\nIn the \u0027DeleteIndexEntryRoot\u0027 case of the \u0027do_action\u0027 function, the\nentry size (\u0027esize\u0027) is retrieved from the log record without adequate\nbounds checking.\n\nSpecifically, the code calculates the end of the entry (\u0027e2\u0027) using:\n    e2 = Add2Ptr(e1, esize);\n\nIt then calculates the size for memmove using \u0027PtrOffset(e2, ...)\u0027,\nwhich subtracts the end pointer from the buffer limit. If \u0027esize\u0027 is\nmaliciously large, \u0027e2\u0027 exceeds the used buffer size. This results in\na negative offset which, when cast to size_t for memmove, interprets\nas a massive unsigned integer, leading to a heap buffer overflow.\n\nThis commit adds a check to ensure that the entry size (\u0027esize\u0027) strictly\nfits within the remaining used space of the index header before performing\nmemory operations."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable code is reached only during NTFS journal ($LogFile) replay at mount time of a block-device filesystem; exploitation requires a locally-presented crafted NTFS image/device, not network access.\nAC:L - The attacker fully controls the on-disk $LogFile contents including the unbounded entry size; once the crafted image is mounted the overflow triggers deterministically with no race or uncontrolled condition.\nPR:N - The attacker only needs to craft the malicious filesystem image and requires no privileges on the target; this matches the established scoring for ntfs3 crafted-image parsing bugs (e.g., CVE-2026-46062).\nUI:R - A victim must mount the attacker-supplied crafted NTFS filesystem image for the journal replay to run, consistent with the directly analogous ntfs3 mount-time CVE-2026-46062.\nS:U - The out-of-bounds access is confined to kernel heap memory within the same kernel security authority; there is no crossing of a VM, sandbox, or IOMMU boundary.\nC:H - The memmove uses an attacker-influenced, effectively unbounded length, producing a large out-of-bounds read of adjacent slab/heap memory rather than a few-byte bounded read.\nI:H - The same memmove writes the enormous length starting at e1, overflowing the slab buffer into adjacent heap objects \u2014 an out-of-bounds write causing memory corruption.\nA:H - The catastrophic memmove of a near-SIZE_MAX length faults on unmapped memory, reliably causing a kernel oops/panic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:28:48.879Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/36c03f7f177b34d51f1cf1d2304b1074607bf4b0"
        },
        {
          "url": "https://git.kernel.org/stable/c/b271c9cb85927210b1b799e55ee7f702d12b4336"
        },
        {
          "url": "https://git.kernel.org/stable/c/a584b9d1059b29e97e17c919274e9adfb846f2a0"
        },
        {
          "url": "https://git.kernel.org/stable/c/c065541b71b79874c83d418a9acd18ad5826339b"
        },
        {
          "url": "https://git.kernel.org/stable/c/78942172d5bff4d4afed8674abc09cc560ce44a0"
        },
        {
          "url": "https://git.kernel.org/stable/c/f3b437a4c3e022a1449658ae9f3dd34859894513"
        },
        {
          "url": "https://git.kernel.org/stable/c/b2bc7c44ed1779fc9eaab9a186db0f0d01439622"
        }
      ],
      "title": "fs/ntfs3: Fix slab-out-of-bounds read in DeleteIndexEntryRoot",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-45935",
    "datePublished": "2026-05-27T12:17:52.705Z",
    "dateReserved": "2026-05-13T15:03:33.086Z",
    "dateUpdated": "2026-08-05T12:28:48.879Z",
    "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…