A tenant VM reaches through the hypervisor's video card and lands SYSTEM on the host that runs every other VM on the box
Plugin 99129 bundles four VMSA-2017-0006 bugs — CVE-2017-4902 (SVGA heap overflow), CVE-2017-4903 (SVGA uninitialized stack), CVE-2017-4904 (uninitialized memory guest-to-host RCE) and CVE-2017-4905 (uninitialized memory info-disclosure). The exploitable primitives live in the virtual SVGA device that every guest VM talks to by default. A local attacker inside a guest VM can drive the SVGA device into a state where guest-controlled bytes are executed on the VMX/hostd process on the ESXi host, escaping the tenancy boundary. Affected build: ESXi 5.5 prior to build 5230635 (patch ESXi550-201703401-SG, released March 2017).
Vendor called this HIGH (CVSSv3 8.8) because they scored under Base metrics with an implicit assumption you're patched on a supported release. In 2026 that assumption is dead. ESXi 5.5 reached End of General Support on 2020-09-19; there will never be another patch, backport, or security fix for this platform. Any 5.5 host still running is not a patch target — it is a retirement target. A guest-to-host escape on an unsupported hypervisor is CRITICAL, not HIGH, because the compensating control isn't a KB article, it's a migration project.
5 steps from start to impact.
Attacker obtains code execution inside a guest VM
- code execution inside any guest VM on the target ESXi 5.5 host
- guest has default SVGA virtual device (it does)
- attacker must first breach a guest — but on multi-tenant clusters this is a paid AWS-like premise, not a hurdle
Weaponize SVGA device against VMX
/dev/svga on Linux guests or the SVGA MMIO BAR on Windows guests) and issues malformed FIFO commands that trigger the heap overflow (CVE-2017-4902) or leak uninitialized memory (CVE-2017-4905) for ASLR bypass.- kernel or high-privilege user access in guest to touch SVGA MMIO
- info-leak primitive (CVE-2017-4905) chained to defeat VMX ASLR
- reliability tuning per exact 5.5 sub-build
- requires guest kernel driver on Windows or root on Linux for cleanest primitive
Execute code in VMX host process
/etc/rc.local.d/ is trivial once VMX code exec is achieved.- successful heap grooming inside VMX
- ASLR defeat from step 2
- VMX is not root on ESXi, but the sandbox around VMX on 5.5 is porous compared to 6.7+ vmx-user
Pivot to hostd / root on the ESXi host
.vmdk files, alter guest state at rest, and pivot to vCenter with cached credentials in /etc/vmware/.- VMX code exec
- none material on 5.5
Fleet-scale pivot via vCenter credentials
- management network reachable from the compromised 5.5 host
- vCenter present
- network segmentation of the management VLAN — rarely enforced tightly around legacy hosts
vpxd.log is forwarded.The supporting signals.
| CVEs bundled | CVE-2017-4902, CVE-2017-4903, CVE-2017-4904, CVE-2017-4905 |
|---|---|
| CVSS v3.0 (vendor) | 8.8 HIGH — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H (scope-changed, local-to-guest → host) |
| In-the-wild status | Not on CISA KEV. No public campaigns tie a named actor to these specific CVEs, but SVGA-class ESXi escapes are the same primitive family targeted at Pwn2Own annually. |
| PoC availability | Pwn2Own 2017 (Team Sniper/Qihoo 360) demonstrated the SVGA-class guest escape. Detailed writeups by ZDI and Keen Team. No push-button Metasploit module, but weaponization is public-precedent. |
| EPSS | ≈ 0.4–0.6% across the four CVEs (low, reflects age + no commodity exploit kit) |
| Affected versions | ESXi 5.5 prior to build 5230635 |
| Fixed version / patch | ESXi550-201703401-SG (build 5230635). Note: ESXi 5.5 reached End of General Support 2020-09-19 — no further fixes ever. |
| Disclosure | 2017-03-28 — VMware VMSA-2017-0006 |
| Reporter | Multiple: Team Sniper (Qihoo 360) via ZDI, Zhang Yunhai (NSFOCUS), 360 Marvel Team |
| Exposure telemetry | Shodan product:"VMware ESXi" 5.5 returns a shrinking but non-zero population. Any 5.5 host on the internet is already a policy failure independent of this CVE. |
noisgate verdict.
This is a guest-to-host escape on a hypervisor — the canonical high-value role where the blast radius is *every VM on the box plus vCenter pivot*. The single most decisive factor is that ESXi 5.5 is End of General Support since 2020-09-19: no vendor patch will ever ship for the next SVGA bug, so any surviving 5.5 host is structurally uncontainable.
Why this verdict
- Role multiplier — canonical hypervisor: the affected component *is* a hypervisor. Chain outcome is fleet-scale: every VM on the host, tenant data at rest, and pivot into vCenter credentials. Per noisgate rule, hypervisor-role bugs where the chain ends in host compromise carry a CRITICAL floor.
- Role multiplier — multi-tenant / DMZ workloads: if a 5.5 host runs any internet-facing or partner-facing guest, step 1 (guest compromise) is not a heavy lift — it's the daily job of your SOC. Every step after that is unstoppable on 5.5.
- EOL amplifier: vendor severity of HIGH assumes a patch exists and defenders will deploy it. On EOL 5.5, that assumption fails. There is no
ESXi550-2026xxxxxpatch train — the *only* remediation is migration off 5.5, which raises severity because the mean-time-to-close is now measured in project quarters, not KB installs. - Friction acknowledged, floor unbroken: yes, the attacker needs guest RCE first, which narrows exposure to hosts running externally-reachable or multi-tenant workloads. That friction sets us at the low end of CRITICAL (9.1, not 9.8), but does NOT drop below the floor because the population that still runs 5.5 disproportionately runs it for legacy workloads on flat management networks.
Why not higher?
Not 9.8+ because the attacker needs code execution inside a guest VM first — this is not an unauthenticated network RCE like Log4Shell. EPSS is low and no commodity Metasploit module ships. If the guest is well-segmented and not internet-facing, the exposure window is narrower than a pre-auth wormable bug.
Why not lower?
Not HIGH because ESXi 5.5 is EOL — no patch exists for tomorrow's SVGA bug, and the compensating-control ceiling is 'retire the host,' not 'apply KB.' Not MEDIUM because guest-to-host escape on a hypervisor with vCenter pivot is a canonical fleet-compromise outcome; friction cannot pull below the hypervisor role floor without ≥1% installed-base evidence we do not have here.
What to do — in priority order.
- Inventory every ESXi 5.5 host in the estate today — Query vCenter (
Get-VMHost | Where-Object {$_.Version -eq '5.5.0'}) and any standalone hosts. You cannot mitigate what you have not enumerated. Complete inventory within 3 days per noisgate CRITICAL mitigation SLA. - Isolate 5.5 hosts on a dedicated management VLAN with no route to vCenter of newer clusters — Prevents step 5 (vCenter pivot) from cascading into modern hosts. Enforce with hardware firewall ACLs, not vSwitch port groups. Deploy within 3 days.
- Evict multi-tenant or untrusted guests from 5.5 hosts — Move any DMZ, partner, developer, or internet-facing VM off 5.5 onto a supported hypervisor. This eliminates step 1 exposure. Complete within 3 days for internet-facing guests, 30 days for internal untrusted.
- Schedule ESXi 5.5 retirement / migration to 7.0U3 or 8.0 — This is the actual remediation. Build the migration plan this week; execute within the 90-day noisgate CRITICAL remediation SLA. vMotion or cold-migrate guests to a supported cluster.
- Enable hostd and vpxd log forwarding to SIEM for 5.5 hosts pending decommission — You will not detect the SVGA escape itself, but you will see VIB installs, unusual root logins, and vCenter auth from the box. Deploy immediately.
- vSphere Trust Authority / attestation — not available on 5.5; a 6.7+ feature.
- Disabling SVGA in guest configs — SVGA is required for guest boot and console access; you cannot cleanly turn it off across a production fleet.
- Guest-side EDR — sees only the initial guest compromise, blind to the hypervisor escape itself.
- Network IDS / WAF — this is a local-to-guest primitive over a virtual PCI device; no network traffic to inspect.
Crowdsourced verification payload.
Run from an admin workstation with PowerCLI installed against your vCenter. Connect first with Connect-VIServer vcenter.example.com, then execute: .\Check-ESXi55-VMSA-2017-0006.ps1. Requires vCenter read-only role or better. Outputs VULNERABLE / PATCHED / UNKNOWN per host.
#requires -Modules VMware.PowerCLI
# Check-ESXi55-VMSA-2017-0006.ps1
# Detects ESXi 5.5 hosts below build 5230635 (VMSA-2017-0006)
# Exit 0 = all PATCHED; Exit 1 = at least one VULNERABLE; Exit 2 = UNKNOWN
$ErrorActionPreference = 'Stop'
$fixedBuild = 5230635
$exit = 0
try {
$hosts = Get-VMHost | Select-Object Name, Version, Build
} catch {
Write-Output "UNKNOWN - could not enumerate hosts: $_"
exit 2
}
foreach ($h in $hosts) {
if ($h.Version -eq '5.5.0') {
if ([int]$h.Build -lt $fixedBuild) {
Write-Output ("VULNERABLE {0} ESXi {1} build {2} (< {3})" -f $h.Name, $h.Version, $h.Build, $fixedBuild)
$exit = 1
} else {
Write-Output ("PATCHED {0} ESXi {1} build {2} (>= {3}) - NOTE: 5.5 is EOL, retire regardless" -f $h.Name, $h.Version, $h.Build, $fixedBuild)
}
} else {
Write-Output ("NOT_APPLICABLE {0} ESXi {1} build {2}" -f $h.Name, $h.Version, $h.Build)
}
}
exit $exit
If you remember one thing.
Version 5.5.0. Under the noisgate mitigation SLA for CRITICAL, within 3 days you must isolate every surviving 5.5 host on a firewalled management VLAN and evict any multi-tenant / internet-facing guests off them. Under the noisgate remediation SLA for CRITICAL, within 90 days you must migrate all guests off 5.5 onto a supported hypervisor (7.0U3 or 8.0) and decommission the 5.5 hosts entirely — 'patch to build 5230635' is not remediation on an EOL platform, migration is. If you find zero 5.5 hosts, close the ticket and document the null result; if you find any, this becomes your highest-priority infrastructure retirement of the quarter.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.