CVE-2026-68273 (GCVE-0-2026-68273)

Vulnerability from cvelistv5 – Published: 2026-08-10 12:01 – Updated: 2026-08-17 05:02
VLAI
Title
drm/amdgpu: Fix context pstate override handling
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Fix context pstate override handling There are several problems in the context pstate handling code. The most serious ones are potential use-after-free and NULL pointer dereferences at context initialization time. Both are due amdgpu_ctx_init() not holding the adev->pm.stable_pstate_ctx_lock, which is otherwise used from both sysfs and the context code itself for modifying and clearing the stored context pointer. Second issue is that context fini can trample over the pstate configuration set via sysfs. This is due the restore state (ctx->stable_pstate) being saved at context init time, and not if, or when the context actually changes the pstate. As the context exits it will therefore incorrectly restore to what was set before the sysfs override was requested. The simplest fix is to drastically simplify how the state is tracked, by clearly defining the points at which pstate ownership is taken and released, and to handle all transitions under the correct lock. Instead of at context init time, the previous state is saved only at the point the context overrides the current state, and is restored on context exit only if the context is still the owner of the current override state. (cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 , < 23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a (git)
Affected: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 , < e06c39cc1c48dca68a5ffd971c23025a52d46634 (git)
Affected: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 , < 9f9c88eb298c54348be3ca4087f4f4c615065b87 (git)
Affected: 79610d3041338dc1ef554d6fd8b3b3e23be527f5 , < c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351 (git)
Affected: 6607901fce79959130db485e7549dacaaeef034e (git)
Affected: 6.0.7 , < 6.1 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.1
Unaffected: 0 , < 6.1 (semver)
Unaffected: 6.12.103 , ≤ 6.12.* (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.6 , ≤ 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/gpu/drm/amd/amdgpu/amdgpu_ctx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a",
              "status": "affected",
              "version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
              "versionType": "git"
            },
            {
              "lessThan": "e06c39cc1c48dca68a5ffd971c23025a52d46634",
              "status": "affected",
              "version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
              "versionType": "git"
            },
            {
              "lessThan": "9f9c88eb298c54348be3ca4087f4f4c615065b87",
              "status": "affected",
              "version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
              "versionType": "git"
            },
            {
              "lessThan": "c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351",
              "status": "affected",
              "version": "79610d3041338dc1ef554d6fd8b3b3e23be527f5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "6607901fce79959130db485e7549dacaaeef034e",
              "versionType": "git"
            },
            {
              "lessThan": "6.1",
              "status": "affected",
              "version": "6.0.7",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.1"
            },
            {
              "lessThan": "6.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.6",
              "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": "6.12.103",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.6",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.0.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: Fix context pstate override handling\n\nThere are several problems in the context pstate handling code.\n\nThe most serious ones are potential use-after-free and NULL pointer\ndereferences at context initialization time. Both are due\namdgpu_ctx_init() not holding the adev-\u003epm.stable_pstate_ctx_lock, which\nis otherwise used from both sysfs and the context code itself for\nmodifying and clearing the stored context pointer.\n\nSecond issue is that context fini can trample over the pstate\nconfiguration set via sysfs. This is due the restore state\n(ctx-\u003estable_pstate) being saved at context init time, and not if, or when\nthe context actually changes the pstate. As the context exits it will\ntherefore incorrectly restore to what was set before the sysfs override\nwas requested.\n\nThe simplest fix is to drastically simplify how the state is tracked, by\nclearly defining the points at which pstate ownership is taken and\nreleased, and to handle all transitions under the correct lock.\n\nInstead of at context init time, the previous state is saved only at the\npoint the context overrides the current state, and is restored on context\nexit only if the context is still the owner of the current override state.\n\n(cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)"
        }
      ],
      "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 - The bug is reached only through the DRM_IOCTL_AMDGPU_CTX ioctl on a local /dev/dri/renderD* or card* node (registered DRM_AUTH|DRM_RENDER_ALLOW in amdgpu_drv.c:3063), and the racing writer is the local sysfs power_dpm_force_performance_level path. No network or adjacent-network path reaches amdgpu context pstate handling.\nAC:L - The attacker owns both sides of the race \u2014 one thread loops AMDGPU_CTX_OP_SET_STABLE_PSTATE and context free while another loops AMDGPU_CTX_OP_ALLOC_CTX \u2014 and can retry indefinitely. The dangling-pointer variant (fini re-assigning adev-\u003epm.stable_pstate_ctx = ctx just before kfree) needs no race at all: once latched, every later context creation dereferences freed memory deterministically.\nPR:L - No capability or authorization check exists anywhere on the path (amdgpu_ctx_ioctl -\u003e amdgpu_ctx_alloc/amdgpu_ctx_stable_pstate -\u003e amdgpu_ctx_init); an unprivileged local user only needs an open render node fd, which is routinely granted to desktop users in the render/video group, to containers, sandboxed GPU processes, and to ordinary apps on Android/Chrome OS.\nUI:N - The attacker triggers everything with its own ioctls on its own file descriptors and its own threads; no action by another user or administrator is required, and the crash or freed-object read happens synchronously in the attacker\u0027s own syscall.\nS:U - The corrupted state (adev-\u003epm.stable_pstate_ctx and the freed struct amdgpu_ctx) and all consequences stay within the kernel of the machine running the amdgpu driver; no VM, IOMMU, or sandbox security boundary is crossed.\nC:H - amdgpu_ctx_init() dereferences a stale adev-\u003epm.stable_pstate_ctx pointer after the context has been kfree()d, reading a field out of a freed kmalloc object that the attacker can reclaim and control via heap spraying; per kernel scoring guidance a use-after-free is treated as High since freed-object access can be leveraged toward kernel memory disclosure.\nI:H - The unlocked read/write of the global pstate-owner pointer leaves a dangling kernel pointer in adev-\u003epm.stable_pstate_ctx and lets a freed, attacker-reclaimable object drive amdgpu_dpm_force_performance_level(); the commit also documents context teardown trampling the DPM configuration set through root-only sysfs, so an unprivileged user corrupts privileged device state.\nA:H - The unlocked check-then-use of adev-\u003epm.stable_pstate_ctx yields a NULL pointer dereference when a concurrent fini or sysfs write clears it, and the stale-pointer case faults on freed or unmapped slab memory \u2014 either produces a kernel oops and a wedged GPU, repeatable at will by an unprivileged local user."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:02:06.886Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a"
        },
        {
          "url": "https://git.kernel.org/stable/c/e06c39cc1c48dca68a5ffd971c23025a52d46634"
        },
        {
          "url": "https://git.kernel.org/stable/c/9f9c88eb298c54348be3ca4087f4f4c615065b87"
        },
        {
          "url": "https://git.kernel.org/stable/c/c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351"
        }
      ],
      "title": "drm/amdgpu: Fix context pstate override handling",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-68273",
    "datePublished": "2026-08-10T12:01:48.734Z",
    "dateReserved": "2026-07-30T09:28:09.379Z",
    "dateUpdated": "2026-08-17T05:02:06.886Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-68273",
      "date": "2026-08-20",
      "epss": "0.00134",
      "percentile": "0.03382"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-68273\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-10T13:20:16.343\",\"lastModified\":\"2026-08-17T05:18:29.827\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/amdgpu: Fix context pstate override handling\\n\\nThere are several problems in the context pstate handling code.\\n\\nThe most serious ones are potential use-after-free and NULL pointer\\ndereferences at context initialization time. Both are due\\namdgpu_ctx_init() not holding the adev-\u003epm.stable_pstate_ctx_lock, which\\nis otherwise used from both sysfs and the context code itself for\\nmodifying and clearing the stored context pointer.\\n\\nSecond issue is that context fini can trample over the pstate\\nconfiguration set via sysfs. This is due the restore state\\n(ctx-\u003estable_pstate) being saved at context init time, and not if, or when\\nthe context actually changes the pstate. As the context exits it will\\ntherefore incorrectly restore to what was set before the sysfs override\\nwas requested.\\n\\nThe simplest fix is to drastically simplify how the state is tracked, by\\nclearly defining the points at which pstate ownership is taken and\\nreleased, and to handle all transitions under the correct lock.\\n\\nInstead of at context init time, the previous state is saved only at the\\npoint the context overrides the current state, and is restored on context\\nexit only if the context is still the owner of the current override state.\\n\\n(cherry picked from commit 1b5e413713c0a93bc1818394d0ce49aaad21bd27)\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"79610d3041338dc1ef554d6fd8b3b3e23be527f5\",\"lessThan\":\"23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"79610d3041338dc1ef554d6fd8b3b3e23be527f5\",\"lessThan\":\"e06c39cc1c48dca68a5ffd971c23025a52d46634\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"79610d3041338dc1ef554d6fd8b3b3e23be527f5\",\"lessThan\":\"9f9c88eb298c54348be3ca4087f4f4c615065b87\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"79610d3041338dc1ef554d6fd8b3b3e23be527f5\",\"lessThan\":\"c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6607901fce79959130db485e7549dacaaeef034e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.0.7\",\"lessThan\":\"6.1\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.1\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.1\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.103\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.44\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.6\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/23a8726e1d7597fe7c9a59d5dc42ba8b7d345b8a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9f9c88eb298c54348be3ca4087f4f4c615065b87\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c1dc4ccb82c9e56325d8e7514ca4c90bd1efb351\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e06c39cc1c48dca68a5ffd971c23025a52d46634\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-13T23:17:35+00:00",
      "cve": "CVE-2026-68273",
      "id": "CVE-2026-68273",
      "initial_release_date": "2026-08-10T00:00:00+00:00",
      "product_status:known_affected": "233",
      "product_status:known_not_affected": "43",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/amdgpu: Fix context pstate override handling",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-68273.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-14T23:45:12Z",
      "cve": "CVE-2026-68273",
      "id": "CVE-2026-68273",
      "initial_release_date": "2026-08-14T17:14:46Z",
      "product_status:known_affected": "177",
      "product_status:known_not_affected": "119",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-68273",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-68273.json",
      "version": "3"
    }
  }
}



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…

Loading…