CVE-2026-98932 (GCVE-0-2026-98932)
Vulnerability from cvelistv5
Published
2026-10-23 12:11
Modified
2026-10-24 14:09
Summary
In the Linux kernel, the following vulnerability has been resolved: EDAC/altera: Fix use-after-free in error paths In both altr_edac_a10_device_add() and altr_portb_setup(), the error path freed the dci structure before releasing the devres group. Since the managed single and double bit IRQ handlers use altdev(dci->pvt_info) as their data, an IRQ firing between freeing dci and unregistering the IRQs could dereference the freed memory. Release the devres group first so the managed IRQs are unregistered before the dci structure is freed.
Impacted products
Vendor Product Version
Linux Linux Version: 588cb03ea208b303e6dee7e916f329043fd0fc26
Version: 588cb03ea208b303e6dee7e916f329043fd0fc26
Version: 588cb03ea208b303e6dee7e916f329043fd0fc26
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/edac/altera_edac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "865f3bdebbc9b34012358c377c9b15154f95f33b",
              "status": "affected",
              "version": "588cb03ea208b303e6dee7e916f329043fd0fc26",
              "versionType": "git"
            },
            {
              "lessThan": "87364b19b3fe4e6dbf88d6acf6db4ec87e7dfbba",
              "status": "affected",
              "version": "588cb03ea208b303e6dee7e916f329043fd0fc26",
              "versionType": "git"
            },
            {
              "lessThan": "eef3b67f9c6782127163b631c9043011a68016e2",
              "status": "affected",
              "version": "588cb03ea208b303e6dee7e916f329043fd0fc26",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/edac/altera_edac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.7"
            },
            {
              "lessThan": "4.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.56",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.56",
                  "versionStartIncluding": "4.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.10",
                  "versionStartIncluding": "4.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "4.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nEDAC/altera: Fix use-after-free in error paths\n\nIn both altr_edac_a10_device_add() and altr_portb_setup(), the error path\nfreed the dci structure before releasing the devres group. Since the managed\nsingle and double bit IRQ handlers use altdev(dci-\u003epvt_info) as their data, an\nIRQ firing between freeing dci and unregistering the IRQs could dereference\nthe freed memory.\n\nRelease the devres group first so the managed IRQs are unregistered\nbefore the dci structure is freed."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Platform-driver binding reaches altr_edac_a10_probe()-\u003ealtr_edac_a10_device_add(), with the SDMMC branch continuing through socfpga_init_sdmmc_ecc()-\u003ealtr_portb_setup(); no packet, media data, or remote protocol enters either patched path.\nAC:H - After the SB IRQ is registered, a DB-IRQ parse/request or edac_device_add_device() must fail, and an ECC interrupt must execute between edac_device_free_ctl_info() and devres_release_group()-\u003efree_irq(); the setup failure and hardware-fault timing are not attacker-controlled.\nPR:N - The platform core invokes altr_edac_a10_probe() automatically for the DT-described ECC manager without capable() or credential checks. The root-only altr_trigger debugfs file is created only after successful setup and cannot supply the interrupt during this failing probe.\nUI:N - Once the DT device is probed and the required setup failure and ECC interrupt occur, the unwind and stale IRQ handler execute entirely in kernel context without a victim opening a device, mounting media, or taking another action.\nS:U - The freed edac_device_ctl_info and altr_edac_device_dev objects, stale IRQ callback, and resulting corruption all reside within the same host kernel; no VM, IOMMU, or other security-authority boundary is crossed.\nC:H - edac_device_free_ctl_info() frees both dci-\u003epvt_info and dci while altr_edac_a10_ecc_irq(), altr_edac_a10_l2_irq(), or the port-B handler can still read base, data, edac_dev, and related fields from those reclaimable objects, providing a UAF disclosure primitive.\nI:H - The stale handlers write through fields loaded from freed altdev: writel()/regmap_write() use its pointers, while edac_device_handle_ce/ue() updates counters through the freed edac_dev. Reclaiming either object therefore provides UAF write and control-flow-corruption primitives.\nA:H - Dereferencing reclaimed base, data, edac, or edac_dev pointers in the stale IRQ handler can immediately oops or panic the kernel; the L2 uncorrectable-error branch can additionally reach panic() through the freed object state."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-24T14:09:33.367Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/865f3bdebbc9b34012358c377c9b15154f95f33b"
        },
        {
          "url": "https://git.kernel.org/stable/c/87364b19b3fe4e6dbf88d6acf6db4ec87e7dfbba"
        },
        {
          "url": "https://git.kernel.org/stable/c/eef3b67f9c6782127163b631c9043011a68016e2"
        }
      ],
      "title": "EDAC/altera: Fix use-after-free in error paths",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98932",
    "datePublished": "2026-10-23T12:11:35.940Z",
    "dateReserved": "2026-09-25T10:25:14.381Z",
    "dateUpdated": "2026-10-24T14:09:33.367Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…