{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-68286", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-12-16T14:48:05.292Z", "datePublished": "2025-12-16T15:06:07.838Z", "dateUpdated": "2026-08-05T12:10:40.179Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:10:40.179Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: Check NULL before accessing\n\n[WHAT]\nIGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic\nfails with NULL pointer dereference. This can be reproduced with\nboth an eDP panel and a DP monitors connected.\n\n BUG: kernel NULL pointer dereference, address: 0000000000000000\n #PF: supervisor read access in kernel mode\n #PF: error_code(0x0000) - not-present page\n PGD 0 P4D 0\n Oops: Oops: 0000 [#1] SMP NOPTI\n CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted\n6.16.0-99-custom #8 PREEMPT(voluntary)\n Hardware name: AMD ........\n RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]\n Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49\n 89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30\n c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02\n RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292\n RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668\n RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000\n RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760\n R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000\n R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c\n FS: 000071f631b68700(0000) GS:ffff8b399f114000(0000)\nknlGS:0000000000000000\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0\n PKRU: 55555554\n Call Trace:\n \n dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]\n amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]\n ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]\n amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]\n drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400\n drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30\n drm_crtc_get_last_vbltimestamp+0x55/0x90\n drm_crtc_next_vblank_start+0x45/0xa0\n drm_atomic_helper_wait_for_fences+0x81/0x1f0\n ...\n\n(cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)" } ], "metrics": [ { "cvssV3_1": { "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" }, "scenarios": [ { "lang": "en", "value": "AV:L - The trigger is a local KMS sequence on the primary DRM device: a nonblocking DRM_IOCTL_MODE_ATOMIC modeset followed by DRM_IOCTL_MODE_CURSOR.\nAC:L - The attacker controls both operations and can repeat the sequence to hit the ordering window reliably. An AMD GPU with an ordinary connected eDP or DP display is a normal deployment condition.\nPR:L - The ioctls require current DRM-master or leased KMS access, but not root or CAP_SYS_ADMIN. An eligible unprivileged first opener can become DRM master automatically.\nUI:N - The attacker directly submits the modeset and cursor ioctls without requiring another user to perform any action.\nS:U - Compromise remains within the host kernel's security authority and does not inherently cross a VM, IOMMU, or other separate security boundary.\nC:H - The NULL field is a manifestation of a dangling dm_irq_params.stream pointer because every live stream constructor initializes ctx. Reclaiming the freed stream allocation can influence the ctx and dc pointer chain, making arbitrary kernel access and resulting information disclosure defensible.\nI:H - The stale object feeds nested display-resource and function-pointer accesses, including idle-optimization and timing-generator callbacks. Heap replacement can therefore enable control-flow hijacking and arbitrary kernel modification.\nA:H - The demonstrated outcome is a repeatable kernel Oops from a supervisor-mode NULL dereference, which can panic the system or leave the display/kernel unusable." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/amd/display/dc/core/dc_stream.c" ], "versions": [ { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "781f2f32e9c19eb791b52af283c96f9a9677a7f2", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "09092269cb762378ca8b56024746b1a136761e0d", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "109e9c92543f3105e8e1efd2c5e6b92ef55d5743", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "9d1a65cbe3ec5da3003c8434ac7a38dcdc958fd9", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "f7cf491cd5b54b5a093bd3fdf76fa2860a7522bf", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "62150f1e7ec707da76ff353fb7db51fef9cd6557", "status": "affected", "versionType": "git" }, { "version": "4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c", "lessThan": "3ce62c189693e8ed7b3abe551802bbc67f3ace54", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/amd/display/dc/core/dc_stream.c" ], "versions": [ { "version": "4.15", "status": "affected" }, { "version": "0", "lessThan": "4.15", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.247", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.197", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.159", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.119", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.61", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.17.11", "lessThanOrEqual": "6.17.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "5.10.247" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "5.15.197" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "6.1.159" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "6.6.119" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "6.12.61" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "6.17.11" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.15", "versionEndExcluding": "6.18" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/781f2f32e9c19eb791b52af283c96f9a9677a7f2" }, { "url": "https://git.kernel.org/stable/c/09092269cb762378ca8b56024746b1a136761e0d" }, { "url": "https://git.kernel.org/stable/c/109e9c92543f3105e8e1efd2c5e6b92ef55d5743" }, { "url": "https://git.kernel.org/stable/c/9d1a65cbe3ec5da3003c8434ac7a38dcdc958fd9" }, { "url": "https://git.kernel.org/stable/c/f7cf491cd5b54b5a093bd3fdf76fa2860a7522bf" }, { "url": "https://git.kernel.org/stable/c/62150f1e7ec707da76ff353fb7db51fef9cd6557" }, { "url": "https://git.kernel.org/stable/c/3ce62c189693e8ed7b3abe551802bbc67f3ace54" } ], "title": "drm/amd/display: Check NULL before accessing", "x_generator": { "engine": "bippy-1.2.0" } } } }