drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.151, 6.12.103, 6.18.44, 7.1.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size Two sites in vmwgfx_resource.c assign boolean literals to res->guest_memory_size, which is an unsigned long allocation-size field; the intended target is the adjacent res->guest_memory_dirty bitfield. After the assignments the field holds 0 or 1 instead of the resource's MOB allocation size: • vmw_resource_release() writes 0 (false), and • vmw_resource_unbind_list() writes 1 (true). Subsequent revalidation paths read guest_memory_size when computing the dirty page range (vmw_bo_dirty_transfer_to_res()) and the buffer allocation size (vmw_resource_buf_alloc()), producing zero-length walks or wrap-around ranges that read or write past the MOB bitmap. The dirty-tracking intent of the original code (mark the resource as dirtied since the last sync) is also lost, since guest_memory_dirty is never updated. Rename both assignments to guest_memory_dirty.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 668b206601c5f5063e03b76784a0d3024fa2b249 · fixed in 21bbe38faee4a195d33a93e3908e307807f7745d; From 668b206601c5f5063e03b76784a0d3024fa2b249 · fixed in 9d6cbb76fe9cd760351f6b0b20f1bf788eab8fa6; From 668b206601c5f5063e03b76784a0d3024fa2b249 · fixed in 282f261cb035e5f01a486f76d356b7e9dbfba73f; From 668b206601c5f5063e03b76784a0d3024fa2b249 · fixed in 3b2bb16a5b622867140d69925db411ac8ecb3b2b; From 668b206601c5f5063e03b76784a0d3024fa2b249 · fixed in 83195b778f2d109a3a4f3ffaba4dce7e4cdb58aa
- Linux Linux
6.4
- KernelLinux
From 6.4.0 · fixed in 6.6.151; From 6.7.0 · fixed in 6.12.103; From 6.13.0 · fixed in 6.18.44; From 6.19.0 · fixed in 7.1.8