← Back to Feed CACHED · 2026-07-13 02:14:10 · CACHE_KEY tenable:111759
tenable:111759 · CWE-203 · Disclosed 2018-08-14

ESXi 5

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A malicious tenant listens through the wall of a shared apartment via the CPU's cache

CVE-2018-3646 (L1 Terminal Fault / Foreshadow-NG, VMM variant) lets code inside a guest VM speculatively read data resident in the physical CPU core's L1 data cache — which on a hyperthreaded core includes memory belonging to the hypervisor scheduler and to sibling VMs sharing that core. Tenable plugin 111759 flags ESXi 5.5, 6.0, 6.5, and 6.7 hosts that are missing the VMSA-2018-0020 hypervisor updates that ship the ESXi Side-Channel-Aware Scheduler (SCAv1/SCAv2) and consume the Intel microcode fixes. Affected builds are anything prior to the August 2018 ESXi patches: 5.5 build 9313334, 6.0 build 9313335, 6.5 build 9298722, 6.7 build 9214924 and later.

The vendor MEDIUM (CVSS 4.7, AV:L/AC:M/PR:L/UI:N/S:C/C:H/I:N/A:N) is *fair, arguably even a hair generous*. Confidentiality-only, attacker must already be executing arbitrary code inside a guest VM on the same physical core as the target, exploitation is slow (kilobytes/second of leaked cache), and mitigations exist even without patching (disable hyperthreading, or ensure single-tenant pCPU pinning). The only reason to lift this above MEDIUM is a multi-tenant scenario where you are actually renting VMs to untrusted third parties — most enterprise ESXi fleets are not that.

"L1TF on ESXi is real but requires attacker code already running inside a guest VM — patch on the hygiene cycle, not the emergency cycle."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land code execution inside a guest VM on the target ESXi host

The attacker must already be running arbitrary unprivileged code inside a VM co-resident on the vulnerable ESXi host. This is the entire prerequisite — L1TF-VMM is not remotely reachable across the network; it is a guest-to-host / cross-VM confidentiality leak. In practice this means either you rent VMs to hostile tenants (IaaS), or an earlier compromise has landed inside one of your workloads.
Conditions required:
  • Attacker controls at least one guest VM on the target ESXi host
  • That VM shares a physical CPU core with the target hypervisor thread or victim VM
Where this breaks in practice:
  • Single-tenant enterprise ESXi deployments have no external attacker running guest code by default
  • Requires an initial-access chain into a VM as the actual entry point
Detection/coverage: None — attacker-side setup is invisible to network sensors; EDR inside the guest may see stage-1 landing
STEP 02

Fingerprint the CPU and confirm L1TF-vulnerable microarchitecture

Attacker enumerates CPUID inside the guest to confirm an Intel Core/Xeon family without the L1D_FLUSH MSR or without the RDCL_NO / hyperthreading mitigation bits set. Public tooling like spectre-meltdown-checker.sh or the original Foreshadow research code from KU Leuven / U-Michigan / U-Adelaide handles this in one shot.
Conditions required:
  • Intel processor of the affected generation (pre-Cascade Lake / Whiskey Lake refresh)
  • Microcode not updated, or SCA-scheduler not enabled on the host
Where this breaks in practice:
  • Modern refresh hardware (2019+) has silicon-level mitigations
  • Any host patched to VMSA-2018-0020 with SCAv2 enabled defeats the sequential-context vector
Detection/coverage: Guest-side CPUID probing is not logged by vCenter or ESXi
STEP 03

Prime the L1D cache and trigger a terminal page fault

Using the L1TF primitive (public PoC: gregvish/l1tf-poc on GitHub, plus the original Foreshadow-NG paper artifacts), the attacker crafts an unmapped-page load whose speculative path leaks bytes from any physical address currently resident in the core's L1D. On a hyperthreaded core, that includes the sibling logical CPU's data — i.e., the hypervisor's or another VM's memory.
Conditions required:
  • Hyperthreading enabled on the host
  • Victim workload (hypervisor page tables, other VM) is co-scheduled on the sibling logical CPU
Where this breaks in practice:
  • ESXi Side-Channel-Aware Scheduler v2 prevents cross-VM co-scheduling of siblings
  • Disabling HT entirely eliminates concurrent-context leak
Detection/coverage: No signature — this is a µ-arch timing side channel
STEP 04

Reconstruct secrets from the leak channel

Attacker sifts leaked cache lines for high-value material: hypervisor secrets, TLS session keys of sibling VMs, credentials in memory, KVM/AD auth tokens. Leak rate is measured in KB/s and is noisy — targeted extraction of a specific 4KB region is feasible over minutes; comprehensive memory dumps are not.
Conditions required:
  • Attacker persistence in the guest VM long enough to sample
  • A victim actually processes secrets on the shared core during the sampling window
Where this breaks in practice:
  • Low bandwidth makes broad exfil impractical
  • Confidentiality-only — no code execution, no persistence gained on the host
Detection/coverage: Sustained abnormal CPU pinning inside a guest may be visible to performance monitoring; no direct signature
03 · Intelligence Metadata

The supporting signals.

CVECVE-2018-3646 (L1TF-VMM / Foreshadow-NG)
In-the-wild exploitation*None observed*. No incidents attributed to L1TF against ESXi in 8 years since disclosure. Not on CISA KEV.
Public PoCYesgregvish/l1tf-poc demonstrates guest-to-host L1D read; academic artifacts from the Foreshadow team (KU Leuven, TU Graz, U-Michigan, U-Adelaide, Technion)
EPSS~0.04% (bottom quartile) — no observed exploitation attempts in telemetry
CISA KEVNot listed
CVSS4.7 MEDIUMCVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N. Local vector, high complexity, confidentiality-only, but scope-changed because a guest reads across the hypervisor trust boundary.
Affected versionsESXi 5.5 < build 9313334, 6.0 < build 9313335, 6.5 < build 9298722, 6.7 < build 9214924. Also Workstation < 14.1.3, Fusion < 10.1.3.
Fixed builds / SCA schedulerVMSA-2018-0020 ships ESXi SCAv1 (opt-in via hyperthreadingMitigation=true); SCAv2 (later patch) restores much of the HT performance while retaining safety
Disclosure2018-08-14 — coordinated with Intel, Microsoft, VMware, Red Hat, and the Foreshadow academic team
Exposure populationESXi 5.5–6.7 are all end-of-general-support (5.5 EoGS 2020-09, 6.0 EoGS 2022-03, 6.5/6.7 EoGS 2022-10). Hosts still on these builds are a maintenance-debt population, not a widely exposed one. Shodan shows ~40k ESXi UIs internet-exposed as of 2026 — most already 7.0.x/8.0.x.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to MEDIUM (5.0/10)

MEDIUM stands because the decisive factor is the prerequisite: an attacker must already be executing arbitrary code inside a guest VM on the target host, and the payoff is a slow confidentiality-only cache leak — no host takeover, no fleet pivot. Single-tenant enterprise ESXi (the overwhelming deployment role) does not present the multi-tenant boundary this bug crosses.

HIGH Vulnerability technical mechanics and mitigation efficacy
HIGH Absence of in-the-wild exploitation
MEDIUM Population still running affected ESXi 5.5–6.7 builds in 2026

Why this verdict

  • Prerequisite is guest-code execution, not network reachability — L1TF-VMM has AV:L. There is no pre-auth, network-facing attack surface here; the attacker has to already be inside a VM on the target host. That single friction point collapses the exposed population by two orders of magnitude versus a remote-unauth ESXi bug.
  • Confidentiality-only, low bandwidth — leak is measured in KB/s, no integrity or availability impact, no code execution. Even a successful chain does not give the attacker fleet control — it gives them a slow drip of cache-resident data that may or may not include a useful secret.
  • Free mitigation exists without patching — disabling hyperthreading or enabling hyperthreadingMitigation=true (SCAv1/v2) neutralizes the concurrent-context vector on every affected build. Defenders who cannot patch have an operational lever that costs performance, not security.
  • Role multiplier — multi-tenant IaaS host: chain succeeds; blast radius is tenant-to-tenant confidentiality breach on the same physical core. Serious for a hosting provider, but this is <5% of enterprise ESXi installed base. Verdict floor for this role: HIGH.
  • Role multiplier — single-tenant enterprise ESXi: chain requires the attacker to have *already compromised* one of your own VMs, at which point L1TF is the least of your problems. Blast radius: incremental read of neighbor VMs on same core. This is the ≥90% deployment role, and the outcome is not fleet-scale. Verdict floor: MEDIUM.
  • No KEV, no known campaigns, EPSS in the bottom quartile eight years post-disclosure. Ransomware crews, state actors, and IABs have universally ignored L1TF in favor of easier ESXi bugs (CVE-2021-21974, CVE-2024-37085). Treat empirical exploitation data as decisive.

Why not higher?

Upgrading to HIGH would require the affected component to canonically occupy a high-value role where the chain ends in fleet or cross-tenant compromise. ESXi *is* a hypervisor (which normally floors at CRITICAL), but the L1TF-VMM chain specifically requires the attacker to already control a co-resident guest — it is not an unauth path to hypervisor code execution like CVE-2024-37085 or ESXiArgs-class bugs. In the dominant single-tenant deployment, the prerequisite is itself a full compromise event.

Why not lower?

Downgrading to LOW ignores the genuine multi-tenant scenario (IaaS, service providers, VDI farms with mixed trust) where the chain does succeed and does cross a real trust boundary. It also ignores that unpatched ESXi 5.5–6.7 hosts in 2026 typically carry many other unpatched CVEs; leaving L1TF unaddressed signals broader maintenance debt worth flagging at MEDIUM.

05 · Compensating Control

What to do — in priority order.

  1. Enable the ESXi Side-Channel-Aware Scheduler — Set VMkernel.Boot.hyperthreadingMitigation = TRUE on each affected host (SCAv1) or upgrade to a build supporting SCAv2 which restores most HT performance. This neutralizes the concurrent-context vector without a hardware change. No noisgate mitigation SLA at MEDIUM, but treat as the *default* control you enable when you touch the host for any reason.
  2. Disable Intel Hyperthreading on hosts running mixed-trust workloads — In the BIOS/UEFI, disable HT on ESXi hosts that mix tenants of different trust levels (dev + prod, tenant A + tenant B). Cuts vCPU capacity ~30% but eliminates the concurrent-context L1TF leak entirely. Apply before onboarding any new untrusted tenant workload.
  3. Pin sensitive workloads to dedicated hosts or dedicated pCPUs — Use DRS host groups and CPU affinity to keep secrets-processing VMs (secrets managers, KDCs, PKI CAs) on hosts that never co-host untrusted workloads. Eliminates the sibling-thread precondition regardless of microcode status.
  4. Verify Intel microcode currency alongside ESXi build — The ESXi patch is necessary but not sufficient — Intel L1D_FLUSH microcode must also be present. Check with esxcli hardware cpu global get and confirm microcode revision matches Intel's L1TF-safe revision for the CPU model. Roll microcode via ESXi patch bundles.
  5. Upgrade off ESXi 5.5/6.0/6.5/6.7 entirely — All four are past End of General Support (5.5: 2020, 6.0: 2022, 6.5/6.7: 2022). Even resolving L1TF, these hosts accrue unpatched CVEs monthly. Fold into your existing hypervisor refresh program to ESXi 8.0.x on the noisgate remediation SLA (≤ 365 days for MEDIUM).
What doesn't work
  • Network segmentation of the ESXi management interface — L1TF is not network-reachable; management-plane firewalls do nothing against a guest-resident attacker.
  • Guest-OS-level Meltdown/Spectre mitigations (KPTI, retpoline) — those protect the guest kernel from guest userspace, not the hypervisor from the guest.
  • EDR inside the guest VM — µ-architectural side-channel reads generate no syscalls, no file I/O, no process events for EDR to alert on.
  • vMotion evacuation policies — moving a VM does not remove its cache footprint from the source core in time to matter; only the scheduler mitigation prevents concurrent sampling.
06 · Verification

Crowdsourced verification payload.

Run this on the target ESXi host over SSH as root, e.g. ssh [email protected] ./check-l1tf.sh. It confirms the ESXi build is at or above the VMSA-2018-0020 fixed build and reports whether the Side-Channel-Aware Scheduler is enabled. Outputs VULNERABLE, PATCHED, or UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/sh
# check-l1tf.sh — VMSA-2018-0020 / CVE-2018-3646 posture check for ESXi
# Run on the ESXi host as root. Requires esxcli.

set -u

if ! command -v esxcli >/dev/null 2>&1; then
  echo "UNKNOWN: esxcli not found — not an ESXi host?"
  exit 2
fi

VER=$(esxcli system version get | awk -F': ' '/^   Version:/ {print $2}')
BUILD=$(esxcli system version get | awk -F': ' '/^   Build:/ {print $2}' | tr -d 'Releasebuild-')

# VMSA-2018-0020 fixed builds
case "$VER" in
  5.5.0) FIX=9313334 ;;
  6.0.0) FIX=9313335 ;;
  6.5.0) FIX=9298722 ;;
  6.7.0) FIX=9214924 ;;
  7.*|8.*) echo "PATCHED: ESXi $VER build $BUILD is post-L1TF baseline"; exit 0 ;;
  *) echo "UNKNOWN: unrecognized ESXi version $VER"; exit 2 ;;
esac

SCA=$(esxcli system settings kernel list -o hyperthreadingMitigation 2>/dev/null \
       | awk '/hyperthreadingMitigation/ {print $3}')

if [ "${BUILD:-0}" -lt "$FIX" ]; then
  echo "VULNERABLE: ESXi $VER build $BUILD < required $FIX (VMSA-2018-0020)"
  exit 1
fi

if [ "$SCA" != "TRUE" ]; then
  echo "VULNERABLE: patched build present but SCA scheduler (hyperthreadingMitigation) is not enabled — concurrent-context L1TF vector still open"
  exit 1
fi

echo "PATCHED: ESXi $VER build $BUILD >= $FIX and SCA scheduler enabled"
exit 0
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull a Nessus report filtered on plugin 111759 and separate the hosts into (a) multi-tenant / mixed-trust hosts and (b) single-tenant application hosts. For bucket (a), enable hyperthreadingMitigation=TRUE (SCAv1/v2) immediately even though the noisgate mitigation SLA at MEDIUM prescribes no hard deadline — treat it as opportunistic-with-next-maintenance-window. For bucket (b), fold the ESXi 5.5–6.7 hosts into your existing hypervisor lifecycle program: the noisgate remediation SLA at MEDIUM is ≤ 365 days, and since these builds are all past End of General Support, the real work is not patching L1TF but retiring the platform to ESXi 8.0.x. Do NOT page anyone out-of-hours for this — it is not on KEV, has no known ITW exploitation in 8 years, and every ransomware crew targeting ESXi is chasing CVE-2024-37085 and CVE-2021-21974 instead.

Sources

  1. Tenable plugin 111759
  2. VMSA-2018-0020 (Broadcom)
  3. VMware L1TF-VMM response (KB 317621)
  4. Side-Channel-Aware Scheduler mitigation guide (KB 330041)
  5. Tenable CVE-2018-3646 record
  6. gregvish/l1tf-poc — guest-to-host L1D read PoC
  7. Rapid7 VMSA-2018-0020 / CVE-2018-3646
  8. vInfrastructure Blog — L1TF vSphere patches
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.