« Volver al listado

CVE-2026-89907

Estado: RecibidaAlta (8.8)—

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

LoongArch: KVM: Validate MSI data before routing it to EIOINTC

pch_msi_set_irq() passes e->msi.data straight into eiointc_set_irq() as the irq number. The MSI data comes from userspace, that either via a KVM_IRQ_ROUTING_MSI entry set with KVM_SET_GSI_ROUTING (used by irqfd and KVM_IRQ_LINE) or directly via KVM_SIGNAL_MSI, and is never checked against EIOINTC_IRQS.

eiointc_set_irq() uses the value with __set_bit()/__clear_bit() on the 256-bit isr bitmap, eiointc_update_irq() then indexes sw_coremap[] and the per-cpu coreisr/sw_coreisr bitmaps with it.

Leer descripción completaMostrar menos

Therefore a data value >= 256 reads and writes memory past the end of those arrays, i.e. any process holding a VM fd can corrupt kernel memory beyond the allocation of loongarch_eiointc.

Reject MSI data that doesn't fit in the EIOINTC irq space. The DMSINTC path is unaffected as it decodes the vector from the address and masks it.

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 local en kernel LoongArch sin validación de datos MSI; permite corrupción de memoria del kernel con PR:L. Impacto: manipulación de datos en memoria del kernel y potencial DoS.

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-89907",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "cvssData": {
          "scope": "CHANGED",
          "version": "3.1",
          "baseScore": 8.8,
          "attackVector": "LOCAL",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "LOW",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 6,
        "exploitabilityScore": 2
      }
    ]
  },
  "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": "1928254c5ccb7bdffd7f0334e1ce250e9ce4de94",
              "lessThan": "83715a40a2d30d23719e0b25380ba82ff905195b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "1928254c5ccb7bdffd7f0334e1ce250e9ce4de94",
              "lessThan": "501514d6ebd2111c353a1296f25dbe22fbd64657",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "arch/loongarch/kvm/intc/pch_pic.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.13"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "6.13",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.2.5",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc2",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "arch/loongarch/kvm/intc/pch_pic.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-16T11:16:59.703",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/501514d6ebd2111c353a1296f25dbe22fbd64657",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/83715a40a2d30d23719e0b25380ba82ff905195b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nLoongArch: KVM: Validate MSI data before routing it to EIOINTC\n\npch_msi_set_irq() passes e->msi.data straight into eiointc_set_irq() as\nthe irq number. The MSI data comes from userspace, that either via a\nKVM_IRQ_ROUTING_MSI entry set with KVM_SET_GSI_ROUTING (used by irqfd\nand KVM_IRQ_LINE) or directly via KVM_SIGNAL_MSI, and is never checked\nagainst EIOINTC_IRQS.\n\neiointc_set_irq() uses the value with __set_bit()/__clear_bit() on the\n256-bit isr bitmap, eiointc_update_irq() then indexes sw_coremap[] and\nthe per-cpu coreisr/sw_coreisr bitmaps with it. Therefore a data value\n>= 256 reads and writes memory past the end of those arrays, i.e. any\nprocess holding a VM fd can corrupt kernel memory beyond the allocation\nof loongarch_eiointc.\n\nReject MSI data that doesn't fit in the EIOINTC irq space. The DMSINTC\npath is unaffected as it decodes the vector from the address and masks\nit."
    }
  ],
  "lastModified": "2026-09-16T15:18:16.810",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}