« Volver al listado

CVE-2026-93217

Estado: RecibidaSin puntuar—

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

mm/madvise: skip device-private PMDs in cold and pageout walks

madvise_cold_or_pageout_pte_range() takes pmd_trans_huge_lock(), whose pmd_is_huge() check returns true for a device-private PMD. The subsequent !pmd_present() branch has a VM_BUG_ON() asserting migration is the only allowed non-present case; a device-private PMD trips it.

Skip device-private PMDs in that non-present branch and continue to huge_unlock before calling pmd_folio().

Leer descripción completaMostrar menos

Downgrade the check to VM_WARN_ON_ONCE() so an unexpected PMD softleaf logs a warning rather than panicking. Drop the thp_migration_supported() guard: it expands to IS_ENABLED(CONFIG_ARCH_SUPPORTS_PMD_SOFTLEAF), and both pmd_is_migration_entry() and pmd_is_device_private_entry() already return false when that config is not selected, so the guard suppresses only the case where the warning would already be silent.

Potential trigger: an HMM-based GPU driver races with madvise(MADV_COLD)/MADV_PAGEOUT: pmd_trans_huge(*pmd) reads true, then migrate_vma_pages() flips the PMD to a device-private entry before the PMD lock is acquired.

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-93217",
  "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": "368076f52ebeecd33e10a9f80905d7508b6b6149",
              "lessThan": "5c0d7b658cda62cd17cb3652783386d5608030ef",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "368076f52ebeecd33e10a9f80905d7508b6b6149",
              "lessThan": "d4b76d0b03cb49611312ecc4bcfb55ccdf0843e2",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "mm/madvise.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.19"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "6.19",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "mm/madvise.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-24T16:17:16.790",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/5c0d7b658cda62cd17cb3652783386d5608030ef",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d4b76d0b03cb49611312ecc4bcfb55ccdf0843e2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/madvise: skip device-private PMDs in cold and pageout walks\n\nmadvise_cold_or_pageout_pte_range() takes pmd_trans_huge_lock(), whose\npmd_is_huge() check returns true for a device-private PMD.  The subsequent\n!pmd_present() branch has a VM_BUG_ON() asserting migration is the only\nallowed non-present case; a device-private PMD trips it.\n\nSkip device-private PMDs in that non-present branch and continue to\nhuge_unlock before calling pmd_folio().  Downgrade the check to\nVM_WARN_ON_ONCE() so an unexpected PMD softleaf logs a warning rather than\npanicking.  Drop the thp_migration_supported() guard: it expands to\nIS_ENABLED(CONFIG_ARCH_SUPPORTS_PMD_SOFTLEAF), and both\npmd_is_migration_entry() and pmd_is_device_private_entry() already return\nfalse when that config is not selected, so the guard suppresses only the\ncase where the warning would already be silent.\n\nPotential trigger: an HMM-based GPU driver races with\nmadvise(MADV_COLD)/MADV_PAGEOUT: pmd_trans_huge(*pmd) reads true, then\nmigrate_vma_pages() flips the PMD to a device-private entry before the PMD\nlock is acquired."
    }
  ],
  "lastModified": "2026-09-24T16:17:16.790",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}