CVE-2026-99002 (GCVE-0-2026-99002)
Vulnerability from cvelistv5
Published
2026-10-23 12:20
Modified
2026-10-30 12:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: validate pitch coming from userspace
Validate the pitch, alongside the box dimensions before trying
to copy data from the underlying surface. Fixes possible
out of bounds reads with cursor snooping.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 Version: 2ac863719e518ae1a8f328849e64ea26a222f079 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "073437615a8da528935146ca6a17292c0ca8ce19",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "f54b41644744f72c86e44a21733ac6fc910ca133",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "cbf7616464334b217ed07b8adacaed549f2a9433",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "db6fbc2b77849e3c3c2bc115ea9ac925c4625a0d",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "f6d9c8abdf06a9c7efa799532d66ed8d5a50734c",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "76e5ddd7d9822c8c3492e0f50ba8978e093069ad",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "fcb137f6e7ed769f7ecad84364a33c451371b602",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
},
{
"lessThan": "21bc51cb89ced74d6645a138cc2f21184bc75094",
"status": "affected",
"version": "2ac863719e518ae1a8f328849e64ea26a222f079",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.2"
},
{
"lessThan": "3.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.273",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.11",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: validate pitch coming from userspace\n\nValidate the pitch, alongside the box dimensions before trying\nto copy data from the underlying surface. Fixes possible\nout of bounds reads with cursor snooping."
}
],
"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 - DRM_IOCTL_VMW_EXECBUF passes a locally supplied SVGA_3D_CMD_SURFACE_DMA through vmw_execbuf_process(), vmw_cmd_dma(), and vmw_kms_cursor_snoop(); the malformed guest.pitch and copy box originate in this ioctl, not a network protocol.\nAC:L - The attacker can create the required 64x64 A8R8G8B8 scanout surface and choose the box, pitch, and source BO. A 63x64 box with pitch 256 deterministically reaches the corrupting partial-copy loop without a race or attacker-uncontrolled condition.\nPR:L - VMW_CREATE_SURFACE, VMW_ALLOC_DMABUF, and VMW_EXECBUF are DRM_RENDER_ALLOW on a DRIVER_RENDER device; drm_ioctl_permit() therefore requires no DRM master, authentication, or capability from an unprivileged render-node client.\nUI:N - The attacker creates the surface and BO and submits the malformed DMA command through their own file descriptor; no victim must mount, open, or display anything.\nS:U - vmw_kms_cursor_snoop() corrupts the guest kernel\u0027s own cursor-snooper allocation from guest userspace. The code demonstrates neither host-memory corruption nor a guest-to-host or IOMMU-boundary escape.\nC:H - The unchecked pitch causes out-of-bounds source reads, while the attacker-controlled heap overwrite can corrupt neighboring pointer-bearing objects and be developed into arbitrary guest-kernel read primitives.\nI:H - snooper.image is a u32 pointer, but the vulnerable loop uses the 256-byte image_pitch as an element stride; a 63x64 copy writes controlled 252-byte rows at 1024-byte intervals far beyond the 16-KiB allocation, enabling control-flow hijacking.\nA:H - An excessive pitch can fault while reading beyond the TTM mapping, and the partial-copy destination bug can overwrite roughly 48 KiB beyond the snooper image, causing an oops or kernel panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:40:48.116Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/073437615a8da528935146ca6a17292c0ca8ce19"
},
{
"url": "https://git.kernel.org/stable/c/f54b41644744f72c86e44a21733ac6fc910ca133"
},
{
"url": "https://git.kernel.org/stable/c/cbf7616464334b217ed07b8adacaed549f2a9433"
},
{
"url": "https://git.kernel.org/stable/c/db6fbc2b77849e3c3c2bc115ea9ac925c4625a0d"
},
{
"url": "https://git.kernel.org/stable/c/f6d9c8abdf06a9c7efa799532d66ed8d5a50734c"
},
{
"url": "https://git.kernel.org/stable/c/76e5ddd7d9822c8c3492e0f50ba8978e093069ad"
},
{
"url": "https://git.kernel.org/stable/c/fcb137f6e7ed769f7ecad84364a33c451371b602"
},
{
"url": "https://git.kernel.org/stable/c/21bc51cb89ced74d6645a138cc2f21184bc75094"
}
],
"title": "drm/vmwgfx: validate pitch coming from userspace",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99002",
"datePublished": "2026-10-23T12:20:22.763Z",
"dateReserved": "2026-09-25T10:25:14.385Z",
"dateUpdated": "2026-10-30T12:40:48.116Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
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…