CVE-2026-80751 (GCVE-0-2026-80751)

Vulnerability from cvelistv5 – Published: 2026-09-03 08:26 – Updated: 2026-09-04 04:58
VLAI
Title
pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()
Summary
In the Linux kernel, the following vulnerability has been resolved: pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev() mtk_mfg_attach_dev() reads prev_o on the first iteration of its loop, in "if (prev_o && prev_o->freq == o->freq)", before prev_o is assigned at the end of the loop body. On that first iteration, evaluating prev_o reads an indeterminate value. If it is non-NULL, the condition dereferences a stale or invalid pointer, potentially faulting or incorrectly skipping the first OPP. Initialize prev_o to NULL. This matches the intent as well: there is no previous OPP to compare against on the first iteration. Found with Clang's -Wconditional-uninitialized.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: f08e7a4e8d6ac4de677727af352ea33c6ce9f444 , < de4eec0dfde8c0e27f8915bbb244d17ff68f2fb4 (git)
Affected: f08e7a4e8d6ac4de677727af352ea33c6ce9f444 , < 090a95dbe13df9965279b588d97eda134831769c (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.19
Unaffected: 0 , < 6.19 (semver)
Unaffected: 7.1.10 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "de4eec0dfde8c0e27f8915bbb244d17ff68f2fb4",
              "status": "affected",
              "version": "f08e7a4e8d6ac4de677727af352ea33c6ce9f444",
              "versionType": "git"
            },
            {
              "lessThan": "090a95dbe13df9965279b588d97eda134831769c",
              "status": "affected",
              "version": "f08e7a4e8d6ac4de677727af352ea33c6ce9f444",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.19"
            },
            {
              "lessThan": "6.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.10",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()\n\nmtk_mfg_attach_dev() reads prev_o on the first iteration of its loop,\nin \"if (prev_o \u0026\u0026 prev_o-\u003efreq == o-\u003efreq)\", before prev_o is assigned\nat the end of the loop body. On that first iteration, evaluating prev_o\nreads an indeterminate value. If it is non-NULL, the condition\ndereferences a stale or invalid pointer, potentially faulting or\nincorrectly skipping the first OPP.\n\nInitialize prev_o to NULL. This matches the intent as well: there is no\nprevious OPP to compare against on the first iteration.\n\nFound with Clang\u0027s -Wconditional-uninitialized."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - mtk_mfg_attach_dev() is only reached from the local kernel genpd attach path (panthor/Mali GPU probe \u2192 devm_pm_domain_attach_list \u2192 genpd_add_device) on MediaTek MT8196/MT6991 SoCs; there is no network, Bluetooth, or USB/physical-bus packet handler into this MFlexGraphics pmdomain code.\nAC:L - On the first loop iteration prev_o is read before assignment; on typical ARM64 kernel stacks the uninitialized slot frequently holds non-zero garbage, so the stale prev_o-\u003efreq dereference is reached deterministically during GPU power-domain attach at boot without races or attacker-uncontrollable timing.\nPR:L - The vulnerable path runs automatically when the Mali/panthor GPU binds to the MediaTek MFG genpd during boot on MT8196/MT6991 phones, Chromebooks, and embedded boards; sysfs driver rebind also reaches it with only local administrator access, not init-namespace root beyond ordinary local privilege.\nUI:N - No victim interaction such as opening files, mounting filesystems, or clicking prompts is required; GPU power-domain attachment and OPP registration occur automatically as part of normal platform driver probe during system bring-up.\nS:U - Impact is confined to kernel GPU power-domain and OPP setup on the same host; it does not cross VM, container, IOMMU, or firmware trust boundaries in a way that changes CVSS scope.\nC:H - When the uninitialized prev_o is non-NULL the kernel dereferences a stale stack-derived pointer to read dev_pm_opp_data.freq, exposing contents from an attacker-uncontrolled kernel address; CNA guidance treats invalid-pointer reads as high confidentiality impact.\nI:H - Beyond the stray read, incorrectly skipping the first OPP corrupts the dynamically built GPU dev_pm_opp table used by devfreq and DVFS consumers, constituting kernel memory integrity compromise that can be leveraged for further exploitation on Mali GPU deployments.\nA:H - Dereferencing a stale or invalid prev_o during GPU attach can cause an immediate kernel OOPS/panic, failing Mali/panthor probe and denying GPU availability on affected MediaTek devices until reboot or driver recovery."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-04T04:58:31.507Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/de4eec0dfde8c0e27f8915bbb244d17ff68f2fb4"
        },
        {
          "url": "https://git.kernel.org/stable/c/090a95dbe13df9965279b588d97eda134831769c"
        }
      ],
      "title": "pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80751",
    "datePublished": "2026-09-03T08:26:31.347Z",
    "dateReserved": "2026-08-26T14:34:25.790Z",
    "dateUpdated": "2026-09-04T04:58:31.507Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80751",
      "date": "2026-09-21",
      "epss": "0.00154",
      "percentile": "0.04898"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "de4eec0dfde8c0e27f8915bbb244d17ff68f2fb4",
                    "status": "affected",
                    "version": "f08e7a4e8d6ac4de677727af352ea33c6ce9f444",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "090a95dbe13df9965279b588d97eda134831769c",
                    "status": "affected",
                    "version": "f08e7a4e8d6ac4de677727af352ea33c6ce9f444",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.19"
                  },
                  {
                    "lessThan": "6.19",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.10",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()\n\nmtk_mfg_attach_dev() reads prev_o on the first iteration of its loop,\nin \"if (prev_o \u0026\u0026 prev_o-\u003efreq == o-\u003efreq)\", before prev_o is assigned\nat the end of the loop body. On that first iteration, evaluating prev_o\nreads an indeterminate value. If it is non-NULL, the condition\ndereferences a stale or invalid pointer, potentially faulting or\nincorrectly skipping the first OPP.\n\nInitialize prev_o to NULL. This matches the intent as well: there is no\nprevious OPP to compare against on the first iteration.\n\nFound with Clang\u0027s -Wconditional-uninitialized."
          }
        ],
        "id": "CVE-2026-80751",
        "lastModified": "2026-09-04T05:17:15.100",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-03T13:06:14.770",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/090a95dbe13df9965279b588d97eda134831769c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/de4eec0dfde8c0e27f8915bbb244d17ff68f2fb4"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…

Detection rules are retrieved from Rulezet.

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…