« Volver al listado

CVE-2026-63892

Estado: Pendiente de análisisSin puntuar—

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

thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow

On the non-root path, __tb_property_parse_dir() takes dir_len from entry->length (u16 widened to size_t). Two distinct OOB conditions follow when entry->length < 4:

Reject dir_len < 4 on the non-root path *before* the UUID kmemdup, which closes both holes.

Also move INIT_LIST_HEAD(&dir->properties) up to immediately after the dir allocation so the new error-return path (and the existing uuid-alloc failure path) calling tb_property_free_dir() sees a walkable list rather than the zero-initialized NULL next/prev that list_for_each_entry_safe() would oops on.

Detalles técnicos trazas, registros y código del informe original
1. The non-root path begins with kmemdup(&block[dir_offset],
   sizeof(*dir->uuid), ...) which always reads 4 dwords from
   dir_offset.  tb_property_entry_valid() only enforces
   dir_offset + entry->length <= block_len, so a crafted entry
   with dir_offset close to the end of the property block and
   entry->length in 0..3 passes that gate but lets the UUID copy
   run off the block (e.g. dir_offset = 497, dir_len = 3 in a
   500-dword block reads block[497..501]).

2. After the kmemdup, content_len = dir_len - 4 underflows size_t
   to ~SIZE_MAX, nentries becomes SIZE_MAX / 4, and the entry
   walk runs OOB on each iteration until an entry fails
   validation or the kernel oopses on an unmapped page.

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

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).

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-63892",
  "cveTags": [],
  "metrics": {},
  "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": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "37abc4504fa19d8f9f1e87792e8a2b8fdb308e40",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "e2d4d51cf5785815fa4e91e0c019e3eb2506a84c",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "de618299190b418291609e6921557253bd417e25",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "5506c825f14d810f0690b1f4367cb7249ebb387a",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "542a13890b742099c461d70920e97b14e568f6ec",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "d548179adcc87e1bc66b17e00352a1f536e76065",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "3bec49ca55e08fb085cc4318f24b1b37eaab28cb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cdae7c07e3e3509eaabc18c1640a55dc5b99c179",
              "lessThan": "de21b59c29e31c5108ddc04210631bbfab81b997",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/thunderbolt/property.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.15"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "4.15",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.10.259",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "status": "unaffected",
              "version": "5.15.210",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.176",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.143",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.93",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.35",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.0.12",
              "versionType": "semver",
              "lessThanOrEqual": "7.0.*"
            },
            {
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/thunderbolt/property.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-07-19T16:17:06.577",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/37abc4504fa19d8f9f1e87792e8a2b8fdb308e40",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3bec49ca55e08fb085cc4318f24b1b37eaab28cb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/542a13890b742099c461d70920e97b14e568f6ec",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/5506c825f14d810f0690b1f4367cb7249ebb387a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d548179adcc87e1bc66b17e00352a1f536e76065",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/de21b59c29e31c5108ddc04210631bbfab81b997",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/de618299190b418291609e6921557253bd417e25",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e2d4d51cf5785815fa4e91e0c019e3eb2506a84c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: property: Reject dir_len < 4 to prevent size_t underflow\n\nOn the non-root path, __tb_property_parse_dir() takes dir_len from\nentry->length (u16 widened to size_t).  Two distinct OOB conditions\nfollow when entry->length < 4:\n\n1. The non-root path begins with kmemdup(&block[dir_offset],\n   sizeof(*dir->uuid), ...) which always reads 4 dwords from\n   dir_offset.  tb_property_entry_valid() only enforces\n   dir_offset + entry->length <= block_len, so a crafted entry\n   with dir_offset close to the end of the property block and\n   entry->length in 0..3 passes that gate but lets the UUID copy\n   run off the block (e.g. dir_offset = 497, dir_len = 3 in a\n   500-dword block reads block[497..501]).\n\n2. After the kmemdup, content_len = dir_len - 4 underflows size_t\n   to ~SIZE_MAX, nentries becomes SIZE_MAX / 4, and the entry\n   walk runs OOB on each iteration until an entry fails\n   validation or the kernel oopses on an unmapped page.\n\nReject dir_len < 4 on the non-root path *before* the UUID kmemdup,\nwhich closes both holes.\n\nAlso move INIT_LIST_HEAD(&dir->properties) up to immediately after\nthe dir allocation so the new error-return path (and the existing\nuuid-alloc failure path) calling tb_property_free_dir() sees a\nwalkable list rather than the zero-initialized NULL next/prev that\nlist_for_each_entry_safe() would oops on."
    }
  ],
  "lastModified": "2026-07-27T17:44:23.777",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}