{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80702","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-26T14:34:25.786Z","datePublished":"2026-08-28T06:53:05.253Z","dateUpdated":"2026-08-29T06:22:22.050Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-29T06:22:22.050Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size\n\nTwo sites in vmwgfx_resource.c assign boolean literals to\nres->guest_memory_size, which is an unsigned long allocation-size\nfield; the intended target is the adjacent res->guest_memory_dirty\nbitfield.  After the assignments the field holds 0 or 1 instead of\nthe resource's MOB allocation size:\n\n  - vmw_resource_release()       writes 0 (false), and\n  - vmw_resource_unbind_list()   writes 1 (true).\n\nSubsequent revalidation paths read guest_memory_size when computing\nthe dirty page range (vmw_bo_dirty_transfer_to_res()) and the buffer\nallocation size (vmw_resource_buf_alloc()), producing zero-length\nwalks or wrap-around ranges that read or write past the MOB bitmap.\nThe dirty-tracking intent of the original code (mark the resource as\ndirtied since the last sync) is also lost, since guest_memory_dirty\nis never updated.\n\nRename both assignments to guest_memory_dirty."}],"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 - Reachable only via local DRM ioctls on the vmwgfx render node (surface/context create-unref, DRM_VMW_EXECBUF, synccpu); vmw_resource_unbind_list runs from vmw_bo_move_notify during MOB eviction, not from any network or physical bus.\nAC:L - An unprivileged attacker controls the full GPU resource lifecycle and can force MOB moves plus subsequent revalidation (execbuf, memory pressure, destroy paths) to clobber guest_memory_size to 0/1 without races or victim-dependent heap layout.\nPR:L - Entry ioctls use DRM_RENDER_ALLOW, so any local user with access to /dev/dri/renderD* on a VMware SVGA guest can trigger vmw_resource_release or vmw_resource_unbind_list and the follow-on validate/dirty paths without init-namespace root.\nUI:N - Exploitation requires only the attacker opening the DRM render device and issuing crafted GPU resource operations; no additional actions by another user or administrator are needed.\nS:U - The bug corrupts guest-kernel vmwgfx MOB dirty-tracking and heap metadata during resource revalidation; impact is confined to the guest kernel security domain and does not directly cross a VM/host or IOMMU boundary.\nC:H - Clobbering guest_memory_size to 0 or 1 breaks dirty page-range math in vmw_bo_dirty_transfer_to_res and vmw_resource_buf_alloc, producing zero-length or wrap-around walks that read past the MOB dirty bitmap and adjacent kernel heap memory.\nI:H - The same corrupted size drives out-of-bounds bitmap_clear and dirty_sync operations past the MOB bitmap and undersized reallocations, yielding a kernel heap write primitive that can be leveraged for guest privilege escalation.\nA:H - Out-of-bounds MOB bitmap access and mis-sized buffer reallocation during revalidation after unbind or release can kernel-oops or panic the guest, providing a reliable denial-of-service against the VM."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/vmwgfx/vmwgfx_resource.c"],"versions":[{"version":"668b206601c5f5063e03b76784a0d3024fa2b249","lessThan":"21bbe38faee4a195d33a93e3908e307807f7745d","status":"affected","versionType":"git"},{"version":"668b206601c5f5063e03b76784a0d3024fa2b249","lessThan":"9d6cbb76fe9cd760351f6b0b20f1bf788eab8fa6","status":"affected","versionType":"git"},{"version":"668b206601c5f5063e03b76784a0d3024fa2b249","lessThan":"282f261cb035e5f01a486f76d356b7e9dbfba73f","status":"affected","versionType":"git"},{"version":"668b206601c5f5063e03b76784a0d3024fa2b249","lessThan":"3b2bb16a5b622867140d69925db411ac8ecb3b2b","status":"affected","versionType":"git"},{"version":"668b206601c5f5063e03b76784a0d3024fa2b249","lessThan":"83195b778f2d109a3a4f3ffaba4dce7e4cdb58aa","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/vmwgfx/vmwgfx_resource.c"],"versions":[{"version":"6.4","status":"affected"},{"version":"0","lessThan":"6.4","status":"unaffected","versionType":"semver"},{"version":"6.6.151","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.103","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.44","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.1.8","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","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":"6.4","versionEndExcluding":"6.6.151"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.12.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.18.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/21bbe38faee4a195d33a93e3908e307807f7745d"},{"url":"https://git.kernel.org/stable/c/9d6cbb76fe9cd760351f6b0b20f1bf788eab8fa6"},{"url":"https://git.kernel.org/stable/c/282f261cb035e5f01a486f76d356b7e9dbfba73f"},{"url":"https://git.kernel.org/stable/c/3b2bb16a5b622867140d69925db411ac8ecb3b2b"},{"url":"https://git.kernel.org/stable/c/83195b778f2d109a3a4f3ffaba4dce7e4cdb58aa"}],"title":"drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size","x_generator":{"engine":"bippy-1.2.0"}}}}