« Volver al listado

CVE-2026-89440

Estado: RecibidaAlta (7.8)—

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

mmc: via-sdmmc: stop card-detect handling on probe failure

request_irq() registers the SD card-detect interrupt and the probe enables it before mmc_add_host() runs. If mmc_add_host() fails, the error path only unmaps the registers and returns: the interrupt stays registered, so the handler keeps running against the host once it is freed. via_sdc_isr() dereferences sdhost and its MMIO base and schedules carddet_work, which via_sdc_card_detect() also runs against freed memory through its container_of() dereference.

Add a probe-error path that disables and frees the interrupt and cancels carddet_work before unmapping. carddet_work can re-enable the device interrupt via via_reset_pcictrl(), which restores PCIINTCTRL, so mask it again after cancelling the work.

Leer descripción completaMostrar menos

This issue was found by an in-house static analysis tool and confirmed by manual code review.

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.

Vulnerabilidad de escalada de privilegios local en controlador MMC del kernel Linux. PR:L sin UI permite explotación por usuario sin privilegios para DoS o corrupción de memoria tras mmc_add_host().

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-89440",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 7.8,
          "attackVector": "LOCAL",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "LOW",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.9,
        "exploitabilityScore": 1.8
      }
    ]
  },
  "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": "63400da6cd37a9793c19bb6aed7131b58b975a04",
              "lessThan": "5bb5327b92aae17e91c7228953c350a6ee3c94e8",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "0959cc1685eb19774300d43ef25e318b457b156b",
              "lessThan": "d045596706d1b25d38af4a79980b017639fea9d1",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ba91b413983a9235792523c6b9f7ba2586c4d75d",
              "lessThan": "806409f12fdb14c9e4c56a64494c9b75f356cd49",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e4e46fb61e3bb4628170810d3f2b996b709b90d9",
              "lessThan": "dde5b9c91e9fc64e54a2f186d3ae95868b4dbb02",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e4e46fb61e3bb4628170810d3f2b996b709b90d9",
              "lessThan": "efe7f25dd27e35063477b4b0e7eed3675669fd99",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e4e46fb61e3bb4628170810d3f2b996b709b90d9",
              "lessThan": "2550f89589caad7402d618d7dffc038582c94b6b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e4e46fb61e3bb4628170810d3f2b996b709b90d9",
              "lessThan": "c2b8a624911999399cc14822fec3e35032b3cee4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e4e46fb61e3bb4628170810d3f2b996b709b90d9",
              "lessThan": "088eaa92fcebaa6b957ccf9635afdf39643a577d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "076bcd2c93e16b05c10564e299d6e5d26a766d00",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "12b8e81b77c05c658efd9cde3585bbd65ae39b59",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "95025a8dd0ec015872f6c16473fe04d6264e68ca",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f59ef2a47a228e51322ad76752a55a8917c56e38",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "0ec94795114edc7e24ec71849dce42bfa61dafa3",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5.10.163",
              "lessThan": "5.10.270",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "5.15.86",
              "lessThan": "5.15.221",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.1.2",
              "lessThan": "6.1.188",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "4.9.337",
              "lessThan": "4.10",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "4.14.303",
              "lessThan": "4.15",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "4.19.270",
              "lessThan": "4.20",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "5.4.229",
              "lessThan": "5.5",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.0.16",
              "lessThan": "6.1",
              "versionType": "semver"
            }
          ],
          "programFiles": [
            "drivers/mmc/host/via-sdmmc.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.2"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "6.2",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.109",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/mmc/host/via-sdmmc.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-11T20:19:24.330",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/088eaa92fcebaa6b957ccf9635afdf39643a577d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/2550f89589caad7402d618d7dffc038582c94b6b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/5bb5327b92aae17e91c7228953c350a6ee3c94e8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/806409f12fdb14c9e4c56a64494c9b75f356cd49",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c2b8a624911999399cc14822fec3e35032b3cee4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d045596706d1b25d38af4a79980b017639fea9d1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/dde5b9c91e9fc64e54a2f186d3ae95868b4dbb02",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/efe7f25dd27e35063477b4b0e7eed3675669fd99",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmmc: via-sdmmc: stop card-detect handling on probe failure\n\nrequest_irq() registers the SD card-detect interrupt and the probe enables\nit before mmc_add_host() runs. If mmc_add_host() fails, the error path only\nunmaps the registers and returns: the interrupt stays registered, so the\nhandler keeps running against the host once it is freed. via_sdc_isr()\ndereferences sdhost and its MMIO base and schedules carddet_work, which\nvia_sdc_card_detect() also runs against freed memory through its\ncontainer_of() dereference.\n\nAdd a probe-error path that disables and frees the interrupt and cancels\ncarddet_work before unmapping. carddet_work can re-enable the device\ninterrupt via via_reset_pcictrl(), which restores PCIINTCTRL, so mask it\nagain after cancelling the work.\n\nThis issue was found by an in-house static analysis tool and confirmed by\nmanual code review."
    }
  ],
  "lastModified": "2026-09-14T13:19:01.230",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}