CVE-2026-72452 (GCVE-0-2026-72452)
Vulnerability from cvelistv5
Published
2026-08-15 05:57
Modified
2026-08-17 05:44
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/i915: clear CRTC color blob pointers after dropping refs intel_crtc_put_color_blobs() drops the CRTC color blob references, but leaves the corresponding pointers unchanged. This can matter in intel_crtc_prepare_cleared_state(), which frees the old CRTC hw state before calling intel_dp_tunnel_atomic_clear_stream_bw(). The latter can fail while looking up the DP tunnel group state, for example with -EDEADLK. If that happens, the function returns without completing the cleared state preparation. The failed atomic state will then be cleared by the atomic core and intel_crtc_free_hw_state() can be called again for the same state, dropping the same blob references again. Clear the blob pointers after dropping the references so repeated cleanup of the same CRTC hw state is safe. (cherry picked from commit d5005addb5f68e8a0edce249506757bdc9e3d8c8)
Impacted products
Vendor Product Version
Linux Linux Version: 9a6cbb4a5c168e94a69a0cbec572b3738205232b
Version: 8581466b827fdf0300a3e2e93900ddefd8240053
Version: 77fcf58df15edcf3f5b5421f24814fb72796def9
Version: 77fcf58df15edcf3f5b5421f24814fb72796def9
Version: 674fc4a50b667be65c947d81af63a9367deafb5c
Version: 6.12.80   
Version: 6.18.21   
Version: 6.19.11   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/i915/display/intel_atomic.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "164afa1a3af8e8c91b4a6d5fd7b79a44ec70abf0",
              "status": "affected",
              "version": "9a6cbb4a5c168e94a69a0cbec572b3738205232b",
              "versionType": "git"
            },
            {
              "lessThan": "2024940522ef451098c940ab0b82d647de5e5d9b",
              "status": "affected",
              "version": "8581466b827fdf0300a3e2e93900ddefd8240053",
              "versionType": "git"
            },
            {
              "lessThan": "ac554ad943610031a25795d6ef71316f6164c136",
              "status": "affected",
              "version": "77fcf58df15edcf3f5b5421f24814fb72796def9",
              "versionType": "git"
            },
            {
              "lessThan": "31f077088e0faae6be8377741f356dea1b94ba46",
              "status": "affected",
              "version": "77fcf58df15edcf3f5b5421f24814fb72796def9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "674fc4a50b667be65c947d81af63a9367deafb5c",
              "versionType": "git"
            },
            {
              "lessThan": "6.12.97",
              "status": "affected",
              "version": "6.12.80",
              "versionType": "semver"
            },
            {
              "lessThan": "6.18.40",
              "status": "affected",
              "version": "6.18.21",
              "versionType": "semver"
            },
            {
              "lessThan": "6.20",
              "status": "affected",
              "version": "6.19.11",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/i915/display/intel_atomic.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.0"
            },
            {
              "lessThan": "7.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "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.97",
                  "versionStartIncluding": "6.12.80",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.18.21",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.19.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/i915: clear CRTC color blob pointers after dropping refs\n\nintel_crtc_put_color_blobs() drops the CRTC color blob references, but\nleaves the corresponding pointers unchanged.\n\nThis can matter in intel_crtc_prepare_cleared_state(), which frees the\nold CRTC hw state before calling intel_dp_tunnel_atomic_clear_stream_bw().\nThe latter can fail while looking up the DP tunnel group state, for\nexample with -EDEADLK.\n\nIf that happens, the function returns without completing the cleared\nstate preparation. The failed atomic state will then be cleared by the\natomic core and intel_crtc_free_hw_state() can be called again for the\nsame state, dropping the same blob references again.\n\nClear the blob pointers after dropping the references so repeated cleanup\nof the same CRTC hw state is safe.\n\n(cherry picked from commit d5005addb5f68e8a0edce249506757bdc9e3d8c8)"
        }
      ],
      "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 i915 DRM atomic commit path (DRM_IOCTL_MODE_ATOMIC on /dev/dri/card*), which calls intel_atomic_check() -\u003e intel_crtc_prepare_cleared_state() -\u003e intel_crtc_free_hw_state(); this is local ioctl access to the display driver, not a network protocol.\nAC:L - Triggering the failure requires a modeset atomic commit on a CRTC with color blobs and an active DP tunnel reference; intel_dp_tunnel_atomic_clear_stream_bw() can return -EDEADLK from drm_atomic_get_private_obj_state(), and an attacker can force that ww_mutex deadlock with concurrent atomic ioctl threads they control.\nPR:L - Exploitation needs DRM master on the primary DRM node to issue atomic modesets; on Intel client systems this is held by the session compositor or obtainable by a local session user with /dev/dri/card0 access, which is standard unprivileged desktop privilege rather than init-namespace root.\nUI:N - No victim interaction is required beyond the attacker issuing their own DRM atomic property/modeset ioctl sequences to set CRTC color blobs and provoke the failing DP tunnel cleanup path.\nS:U - The double-free corrupts kernel heap drm_property_blob objects inside the i915 display driver; impact stays within kernel memory management and does not inherently cross a VM/host or sandbox security boundary without separate exploitation.\nC:H - intel_crtc_put_color_blobs() can drop the same drm_property_blob references twice because pointers are not cleared after the first put; this double-free/use-after-free of heap objects can expose kernel memory contents and is scored as arbitrary read potential per UAF guidance.\nI:H - Repeated drm_property_blob_put() on stale pointers causes refcount underflow and slab freelist corruption on kvzalloc-backed blobs, providing a standard kernel heap corruption primitive that can be leveraged for arbitrary write or code execution.\nA:H - The refcount double-free during failed atomic state cleanup can immediately panic/oops the kernel or destabilize the allocator; any successful trigger causes high availability impact even before full exploitation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:44:21.920Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/164afa1a3af8e8c91b4a6d5fd7b79a44ec70abf0"
        },
        {
          "url": "https://git.kernel.org/stable/c/2024940522ef451098c940ab0b82d647de5e5d9b"
        },
        {
          "url": "https://git.kernel.org/stable/c/ac554ad943610031a25795d6ef71316f6164c136"
        },
        {
          "url": "https://git.kernel.org/stable/c/31f077088e0faae6be8377741f356dea1b94ba46"
        }
      ],
      "title": "drm/i915: clear CRTC color blob pointers after dropping refs",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72452",
    "datePublished": "2026-08-15T05:57:00.234Z",
    "dateReserved": "2026-08-09T03:40:39.931Z",
    "dateUpdated": "2026-08-17T05:44:21.920Z",
    "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…