CVE-2025-38707 (GCVE-0-2025-38707)
Vulnerability from cvelistv5
Published
2025-09-04 15:32
Modified
2026-08-05 12:04
Summary
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: Add sanity check for file name The length of the file name should be smaller than the directory entry size.
Impacted products
Vendor Product Version
Linux Linux Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Version: 4534a70b7056fd4b9a1c6db5a4ce3c98546b291e
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T17:41:37.372Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "affected": [
          {
            "defaultStatus": "unknown",
            "product": "SIMATIC CN 4100",
            "vendor": "Siemens",
            "versions": [
              {
                "lessThan": "V5.0",
                "status": "affected",
                "version": "0",
                "versionType": "custom"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-12T12:05:43.177Z",
          "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
          "shortName": "siemens-SADP"
        },
        "references": [
          {
            "url": "https://cert-portal.siemens.com/productcert/html/ssa-032379.html"
          }
        ],
        "x_adpType": "supplier"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ntfs3/dir.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "bde58c1539f3ffddffc94d64007de16964e6b8eb",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "f99eb9a641f4ef927d8724f4966dcfd1f0e9f835",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "3572737a768dadea904ebc4eb34b6ed575bb72d9",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "2ac47f738ddfc1957a33be163bc97ee8f78e85a6",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "b51642fc52d1c7243a9361555d5c4b24d7569d7e",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "27ee9a42b245efe6529e28b03453291a775cb3e4",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            },
            {
              "lessThan": "e841ecb139339602bc1853f5f09daa5d1ea920a2",
              "status": "affected",
              "version": "4534a70b7056fd4b9a1c6db5a4ce3c98546b291e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/ntfs3/dir.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.190",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.149",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.43",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.16.*",
              "status": "unaffected",
              "version": "6.16.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.190",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.149",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.103",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.43",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.11",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16.2",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17",
                  "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: Add sanity check for file name\n\nThe length of the file name should be smaller than the directory entry size."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - `ntfs_dir_emit()` is reached only through `ntfs_readdir()` \u2192 `ntfs_read_hdr()`, i.e. a local `getdents64(2)` on a directory of an attacker-authored NTFS volume (loop image or removable media); there is no network-facing consumer of fs/ntfs3/dir.c.\nAC:L - `fname-\u003ename_len` is a raw on-disk u8 the attacker writes into the index entry, and `ntfs_read_hdr()` only validates `e-\u003esize \u003e= 0x10` and `key_size \u003e= 0x44`, so an entry with `e-\u003esize = 0x10`, `name_len = 255` placed at the tail of `hdr-\u003eused` deterministically overreads ~590 bytes past the `kmalloc(index_block_size)` buffer on the first readdir \u2014 no race, no timing window, and adjacent slab contents can be groomed beforehand.\nPR:L - ntfs3 is FS_REQUIRES_DEV without FS_USERNS_MOUNT so a bare `mount(2)` needs CAP_SYS_ADMIN, but in the most severe reasonable deployment an unprivileged local user gets the crafted image mounted via udisks2 loop-setup, desktop/kiosk removable-media automount, or `user`/autofs fstab delegation; the `getdents64` that fires the overread needs no privilege at all.\nUI:N - The attacker performs every step personally \u2014 presents the crafted volume, which an automounter consumes with no human action, then runs the directory read itself. No second victim user must be induced to act.\nS:U - The out-of-bounds read happens in ntfs3 name conversion inside the kernel and its effects stay within that same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - `ntfs_utf16_to_nls(sbi, fname-\u003ename, fname-\u003ename_len, ...)` reads up to 510 bytes from `e + 0x52` with no bound tied to `e-\u003esize`, walking off the end of the `kmalloc(bytes)` INDEX_BUFFER (or the `kmalloc(sbi-\u003erecord_size)` MFT record) into neighbouring slab objects, and every harvested byte is handed to `dir_emit()` and returned to userspace as a filename \u2014 a repeatable, attacker-length-controlled kernel heap disclosure primitive usable to defeat KASLR and lift secrets from groomed adjacent objects.\nI:N - The defect is strictly a read overrun; stores into the PATH_MAX `name` buffer stay bounded by `buf_len`/`utf16s_to_utf8s()` maxout with `NTFS_NAME_LEN * 4 \u003c PATH_MAX` statically asserted, so no kernel memory is modified.\nA:H - The multi-hundred-byte overread can run off the end of the page-backed index buffer into unmapped memory, faulting inside `iterate_dir()` while the inode rwsem is held and wedging the filesystem; under KASAN, SLUB_DEBUG, or debug_pagealloc it faults immediately (this is exactly how syzbot hit it), and with panic_on_oops it is a full panic the attacker can repeat at will."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:04:08.373Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/bde58c1539f3ffddffc94d64007de16964e6b8eb"
        },
        {
          "url": "https://git.kernel.org/stable/c/f99eb9a641f4ef927d8724f4966dcfd1f0e9f835"
        },
        {
          "url": "https://git.kernel.org/stable/c/3572737a768dadea904ebc4eb34b6ed575bb72d9"
        },
        {
          "url": "https://git.kernel.org/stable/c/2ac47f738ddfc1957a33be163bc97ee8f78e85a6"
        },
        {
          "url": "https://git.kernel.org/stable/c/b51642fc52d1c7243a9361555d5c4b24d7569d7e"
        },
        {
          "url": "https://git.kernel.org/stable/c/27ee9a42b245efe6529e28b03453291a775cb3e4"
        },
        {
          "url": "https://git.kernel.org/stable/c/e841ecb139339602bc1853f5f09daa5d1ea920a2"
        }
      ],
      "title": "fs/ntfs3: Add sanity check for file name",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38707",
    "datePublished": "2025-09-04T15:32:58.386Z",
    "dateReserved": "2025-04-16T04:51:24.032Z",
    "dateUpdated": "2026-08-05T12:04:08.373Z",
    "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…