« Volver al listado

CVE-2026-72192

Estado: RecibidaCrítica (9.8)—

In the Linux kernel, the following vulnerability has been resolved:

ntfs3: bound to_move in indx_insert_into_root before hdr_insert_head

indx_insert_into_root() promotes a full resident $INDEX_ROOT into $INDEX_ALLOCATION and copies all non-last resident root entries into a newly allocated INDEX_BUFFER via hdr_insert_head(). The source byte count 'to_move' is summed from the on-disk resident entry sizes and is independent of the destination buffer size, which comes from root->index_block_size (via indx->index_bits).

A crafted NTFS image that keeps a valid, full resident root but shrinks root->index_block_size down to 512 after the root has been populated makes hdr_insert_head() memcpy attacker-controlled resident entry bytes past the end of the kmalloc(1u << indx->index_bits) allocation returned by indx_new().

Leer descripción completaMostrar menos

For a 512-byte destination and a resident root whose non-last entries total 560 bytes, the memcpy overruns by 120 bytes and a following memmove extends the highest written offset to 136 bytes past the allocation. The overflow bytes are a direct copy of on-disk entries (via kmemdup), so they are fully attacker-controlled.

The write is reachable from unprivileged open(O_CREAT) on a mounted crafted NTFS image: a single sufficiently long create in a directory whose resident root is already full forces root promotion and triggers the copy.

This is a controlled out-of-bounds write of 120-136 bytes past a kmalloc(index_block_size) allocation, with attacker-controlled content. It is a bounded adjacent-heap corruption primitive; it is not an arbitrary-address write. Successful exploitation into a named victim object depends on the surrounding slab layout.

Reject the copy at the sink. The destination's INDEX_HDR already reports hdr_total (the payload capacity of the new buffer) and hdr_used (the bytes already consumed by the terminal END entry installed by indx_new()); require that to_move fits in the remaining payload before calling hdr_insert_head(). On mismatch, fail with -EINVAL and mark the filesystem as having a detected on-disk inconsistency, which is the same behaviour as the surrounding validation in this function.

CVSS

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

🎯 Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

NTFS3 buffer overflow (CWE-120) en kernel Linux alcanzable vía open() no privilegiado en imagen NTFS manipulada. AV:N/PR:N/UI:N permite T1190. Corrupción de heap controlada permite escalada de privilegios (T1068) o DoS (T1499.004).

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

🛡️ Mitigaciones ATT&CK que cubren estas técnicas

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-72192",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.8,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.9,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "0af83b8155cc848e9f5d2c36e20a70d024214649",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "cb3161deebcaf8d36d3115abf452c633f2180fc1",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "53c5f3b2da3774b41534728aba295c098c9efa19",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "194b00c99ba971fa7cf6acd747a36032c6de54eb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "aaa1f956c0fc41089a4a534da7df91552a08a47c",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "d240f5f9d036b8180224954d9873f172b6be4dd8",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "82cae269cfa953032fbb8980a7d554d60fb00b17",
              "lessThan": "9b6926ac9c970ae0b2c2fe6289b16e9aa10b6a67",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "fs/ntfs3/index.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.15",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.15.212",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.178",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver",
              "lessThanOrEqual": "7.1.*"
            },
            {
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/ntfs3/index.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-08-15T06:21:37.663",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0af83b8155cc848e9f5d2c36e20a70d024214649",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/194b00c99ba971fa7cf6acd747a36032c6de54eb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/53c5f3b2da3774b41534728aba295c098c9efa19",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/9b6926ac9c970ae0b2c2fe6289b16e9aa10b6a67",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/aaa1f956c0fc41089a4a534da7df91552a08a47c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/cb3161deebcaf8d36d3115abf452c633f2180fc1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d240f5f9d036b8180224954d9873f172b6be4dd8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nntfs3: bound to_move in indx_insert_into_root before hdr_insert_head\n\nindx_insert_into_root() promotes a full resident $INDEX_ROOT into\n$INDEX_ALLOCATION and copies all non-last resident root entries into\na newly allocated INDEX_BUFFER via hdr_insert_head(). The source\nbyte count 'to_move' is summed from the on-disk resident entry sizes\nand is independent of the destination buffer size, which comes from\nroot->index_block_size (via indx->index_bits).\n\nA crafted NTFS image that keeps a valid, full resident root but\nshrinks root->index_block_size down to 512 after the root has been\npopulated makes hdr_insert_head() memcpy attacker-controlled resident\nentry bytes past the end of the kmalloc(1u << indx->index_bits)\nallocation returned by indx_new(). For a 512-byte destination and a\nresident root whose non-last entries total 560 bytes, the memcpy\noverruns by 120 bytes and a following memmove extends the highest\nwritten offset to 136 bytes past the allocation. The overflow bytes\nare a direct copy of on-disk entries (via kmemdup), so they are\nfully attacker-controlled.\n\nThe write is reachable from unprivileged open(O_CREAT) on a mounted\ncrafted NTFS image: a single sufficiently long create in a directory\nwhose resident root is already full forces root promotion and\ntriggers the copy.\n\nThis is a controlled out-of-bounds write of 120-136 bytes past a\nkmalloc(index_block_size) allocation, with attacker-controlled\ncontent. It is a bounded adjacent-heap corruption primitive; it is\nnot an arbitrary-address write. Successful exploitation into a named\nvictim object depends on the surrounding slab layout.\n\nReject the copy at the sink. The destination's INDEX_HDR already\nreports hdr_total (the payload capacity of the new buffer) and\nhdr_used (the bytes already consumed by the terminal END entry\ninstalled by indx_new()); require that to_move fits in the remaining\npayload before calling hdr_insert_head(). On mismatch, fail with\n-EINVAL and mark the filesystem as having a detected on-disk\ninconsistency, which is the same behaviour as the surrounding\nvalidation in this function."
    }
  ],
  "lastModified": "2026-08-17T06:18:19.800",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}