GHSA-7J63-M3C7-G76R

Vulnerability from github – Published: 2026-09-24 18:31 – Updated: 2026-09-24 18:31
VLAI
Details

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

mmc: davinci: avoid NULL deref of host->data in IRQ handler

mmc_davinci_irq() returns early only when both host->cmd and host->data are NULL:

if (host->cmd == NULL && host->data == NULL) { ... return IRQ_NONE; }

So we may legitimately reach the rest of the handler with host->data == NULL (and therefore data == NULL). The DATDNE branch already guards against this with an explicit "if (data != NULL)" check, but the subsequent TOUTRD ("read data timeout") and CRCWR/CRCRD ("data CRC error") branches dereference data unconditionally:

if (qstatus & MMCST0_TOUTRD) { data->error = -ETIMEDOUT; <-- NULL deref ... davinci_abort_data(host, data); }

if (qstatus & (MMCST0_CRCWR | MMCST0_CRCRD)) { data->error = -EILSEQ; <-- NULL deref ... }

If either bit is set in qstatus while host->data is NULL, the kernel will crash inside the IRQ handler. smatch flags this:

drivers/mmc/host/davinci_mmc.c:933 mmc_davinci_irq() error: we previously assumed 'data' could be null (see line 914)

Gate both branches on a non-NULL data, matching the existing pattern used by the DATDNE branch.

No functional change for callers where data is non-NULL, which is the only case in which these branches did meaningful work before this change.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-97502"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-09-24T17:17:27Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nmmc: davinci: avoid NULL deref of host-\u003edata in IRQ handler\n\nmmc_davinci_irq() returns early only when both host-\u003ecmd and\nhost-\u003edata are NULL:\n\n  if (host-\u003ecmd == NULL \u0026\u0026 host-\u003edata == NULL) {\n          ...\n          return IRQ_NONE;\n  }\n\nSo we may legitimately reach the rest of the handler with\nhost-\u003edata == NULL (and therefore data == NULL). The DATDNE branch\nalready guards against this with an explicit \"if (data != NULL)\"\ncheck, but the subsequent TOUTRD (\"read data timeout\") and\nCRCWR/CRCRD (\"data CRC error\") branches dereference data\nunconditionally:\n\n  if (qstatus \u0026 MMCST0_TOUTRD) {\n          data-\u003eerror = -ETIMEDOUT;        \u003c-- NULL deref\n          ...\n          davinci_abort_data(host, data);\n  }\n\n  if (qstatus \u0026 (MMCST0_CRCWR | MMCST0_CRCRD)) {\n          data-\u003eerror = -EILSEQ;           \u003c-- NULL deref\n          ...\n  }\n\nIf either bit is set in qstatus while host-\u003edata is NULL, the kernel\nwill crash inside the IRQ handler. smatch flags this:\n\n  drivers/mmc/host/davinci_mmc.c:933 mmc_davinci_irq() error: we\n    previously assumed \u0027data\u0027 could be null (see line 914)\n\nGate both branches on a non-NULL data, matching the existing pattern\nused by the DATDNE branch.\n\nNo functional change for callers where data is non-NULL, which is\nthe only case in which these branches did meaningful work before\nthis change.",
  "id": "GHSA-7j63-m3c7-g76r",
  "modified": "2026-09-24T18:31:35Z",
  "published": "2026-09-24T18:31:35Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97502"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/4f28846aaf8db9668e338b8987973f8935edff34"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/5b7e151fe9ea9311ba601849aaecdc4fc97fd577"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/a01cedf230dc0fcd55b994f5e548d3982ba4c732"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…