← Back to Feed CACHED · 2026-07-10 09:28:57 · CACHE_KEY tenable:86947
tenable:86947 · CWE-415 · Disclosed 2015-10-01

VMware ESXi 5

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

The front-desk phone on your hypervisor takes a call and hands the caller the datacenter keys

CVE-2015-2342 is a *double-free* in SLPDProcessMessage() inside the OpenSLP daemon that ships enabled on ESXi 5.5 and listens on TCP/UDP 427. An unauthenticated remote attacker who can reach the SLP port sends a crafted Service Location Protocol message and gets code execution in the context of the OpenSLP process on the hypervisor — a position from which VM escape, datastore encryption, and lateral pivot are all trivially reachable. Affected: ESXi 5.5 prior to build 3029944 (patch ESXi550-201509101-SG, October 2015); sibling plugins 86945/86946 cover ESXi 5.0/5.1. Related CVEs in the same VMSA: CVE-2015-1047, CVE-2015-5177.

Vendor severity of CRITICAL is *correct*, and if anything understated for 2026. The OpenSLP-on-ESXi class was later mass-weaponized as CVE-2021-21974 by the ESXiArgs ransomware campaign in Feb 2023, which encrypted thousands of internet-exposed ESXi hosts. Any host that still fires plugin 86947 today is running an end-of-general-support hypervisor (ESXi 5.5 EOGS 2018, EOTG 2020) — so this finding is really a canary for *every* unpatched ESXi CVE from the last decade, not just this one.

"Unauthenticated RCE on the hypervisor via OpenSLP/427 — and if this plugin fires in 2026, the host is running an EOL ESXi 5.5."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Reach TCP/UDP 427 on the ESXi management interface

Attacker needs L3 reachability to the SLP port on the hypervisor's management VMkernel NIC. On flat management VLANs or hosts inadvertently exposed to the internet this is trivial; on properly segmented deployments it means the attacker is already inside the management network. Nmap -p 427 or SLP-aware scanners fingerprint the daemon in seconds.
Conditions required:
  • Network path to port 427/tcp or 427/udp on ESXi mgmt NIC
  • SLP daemon (slpd) enabled — default on 5.5
Where this breaks in practice:
  • Well-run shops isolate the ESXi mgmt VLAN behind a jump host
  • SLP was disabled by default in later ESXi releases after ESXiArgs; some 5.5 shops turned it off manually
Detection/coverage: Shodan/Censys tag SLP on 427; Tenable plugin 86947 fires on the version banner; GreyNoise tracks SLP probes as a category.
STEP 02

Send crafted SLP message triggering double-free in SLPDProcessMessage()

The attacker sends a malformed Service Request PDU that drives SLPDProcessMessage() down a path where the same heap chunk is freed twice. Public PoCs for the sibling CVE-2021-21974 (Johnny Yu / straight_blast walkthrough) show the exact heap-massage technique; the 2015 bug is the same code path, older heap. No auth required.
Conditions required:
  • Ability to send raw UDP/TCP to 427
  • Knowledge of ESXi 5.5 heap layout (documented publicly)
Where this breaks in practice:
  • Exploit is heap-shape dependent; some attempts crash slpd instead of executing
  • slpd respawns, so noisy attempts leave forensics
Detection/coverage: IDS signatures for OpenSLP heap-overflow exist in Suricata/Snort ET rulesets (ET EXPLOIT VMware ESXi OpenSLP).
STEP 03

Gain code execution as slpd on the hypervisor

Shellcode runs in the slpd process on the VMkernel. From here the attacker reads /etc/vmware/, enumerates datastores via vim-cmd, and has the file-system position needed to drop a payload or manipulate VM configs. This is the ESXiArgs playbook.
Conditions required:
  • Successful heap corruption from step 2
Where this breaks in practice:
  • ESXi's userworld sandboxing limits some syscalls but does not stop file access to datastores
Detection/coverage: ESXi shell command logging (hostd.log, shell.log) captures follow-on esxcli/vim-cmd but only if log forwarding is configured.
STEP 04

Encrypt VMDKs or deploy a persistent implant

Attacker iterates datastores, powers off VMs (vim-cmd vmsvc/power.off), and encrypts .vmdk, .vmx, .nvram files — the ESXiArgs pattern. Alternatively, drop a rogue VIB with esxcli software vib install --no-sig-check for persistence surviving reboot.
Conditions required:
  • Root-equivalent context on the hypervisor
Where this breaks in practice:
  • Backup immutability (Veeam hardened repo, S3 Object Lock) blunts the ransom leverage — but does nothing to prevent the encryption event itself
Detection/coverage: Sudden .args/.encrypted extension bloom in datastores; VM mass power-off events in vCenter.
STEP 05

Pivot laterally via stolen vCenter creds / management LAN

The hypervisor has network reach to vCenter, backup infrastructure, and any management-plane services. From ESXi shell the attacker harvests vpxd-cached credentials, dumps VM memory to extract domain secrets, or mounts a running DC's VMDK offline to steal NTDS.dit.
Conditions required:
  • Adjacent management-plane services with weak segmentation
Where this breaks in practice:
  • Tiered admin models with dedicated vCenter accounts + PAM checkout limit reuse
Detection/coverage: Offline VMDK mounts leave datastore-lock artifacts; vCenter auth anomalies via SIEM correlation.
03 · Intelligence Metadata

The supporting signals.

CVECVE-2015-2342 (primary); companions CVE-2015-1047, CVE-2015-5177
CWECWE-415 Double Free
Vendor advisoryVMSA-2015-0007 (VMware, 2015-10-01)
In-the-wild*This CVE*: no confirmed mass-exploit campaign. *Class*: OpenSLP-on-ESXi weaponized as CVE-2021-21974 by ESXiArgs ransomware, Feb 2023, thousands of hosts encrypted
KEV statusCVE-2015-2342 not in CISA KEV; sibling CVE-2021-21974 added 2023-02-08
EPSSHistorically low percentile (<1%) — reflects age, not exploitability; sibling 21974 sits >95th
PoCDirect PoC for 2015-2342 not public; Johnny Yu (@straight_blast) published a full walkthrough for CVE-2021-21974 exploiting the same OpenSLP code path
CVSSv2 vectorAV:N/AC:L/Au:N/C:C/I:C/A:C = 10.0 (unauthenticated, network, full compromise)
Affected buildESXi 5.5 < build 3029944; fix ESXi550-201509101-SG (Oct 2015)
Support statusESXi 5.5 end of general support 2018-09-19, end of technical guidance 2020-09-19no vendor support in 2026
ExposureShodan/Censys still index a few thousand internet-exposed ESXi hosts with port 427 open; post-ESXiArgs the majority disabled SLP but a long tail remains
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.8/10)

The affected component is a hypervisor — the canonical high-value role — and the flaw is *unauthenticated* remote code execution reachable on a default-enabled service port, so the deployment-role blast radius floor is CRITICAL by hard rule. Compounding the call: any host still detecting this in 2026 is running an EOL ESXi 5.5 build with a decade of unpatched criticals stacked behind it.

HIGH vulnerability mechanics and affected build range
HIGH role-based blast radius (hypervisor)
MEDIUM current in-the-wild activity specifically targeting the 2015 variant vs. the 2021 sibling

Why this verdict

  • Role multiplier — hypervisor: Chain succeeds on ESXi mgmt interface; blast radius is fleet-level (every VM on the host, plus datastore-adjacent VMs). 100% of installs of this component ARE the high-value role — the bug lives inside the hypervisor itself. CRITICAL floor engaged.
  • Unauthenticated + network-reachable: No credentials, no user interaction, single UDP/TCP packet class. This is the exact profile that ransomware crews automate.
  • Class already mass-weaponized: ESXiArgs proved the OpenSLP-on-ESXi attack surface is industrial-grade; the 2015 bug is the same code with an older heap.
  • EOL platform amplifier: ESXi 5.5 has no vendor support since 2020. This finding is a proxy indicator for dozens of unpatched criticals on the same host — you cannot triage it in isolation.
  • Friction that does exist — SLP-disable and mgmt segmentation: Shops that disabled slpd or wall-off the mgmt VLAN raise the bar, but neither is universal and neither justifies dropping below the hypervisor CRITICAL floor per the hard rule.

Why not higher?

Already at the top of the severity ladder. The only reason the reassessed score is 9.8 rather than 10.0 is that the SLP daemon is disable-able and a subset of hardened shops have done so, which slightly narrows the exploitable population versus a flaw in a mandatory hypervisor service.

Why not lower?

Downgrading a pre-auth RCE in a hypervisor would violate the deployment-role floor. Even if this specific 2015 CVE lacks a widely circulated PoC, (a) the code path was later mass-exploited via CVE-2021-21974 and (b) any host on which the plugin fires is by definition running an unsupported ESXi 5.5 build — the *host*, not just the CVE, is critical debt.

05 · Compensating Control

What to do — in priority order.

  1. Disable the OpenSLP daemon on every ESXi host — Ship the KB76372 procedure: esxcli system slp set --enable false (or /etc/init.d/slpd stop + chkconfig slpd off on 5.5) and confirm esxcli network firewall ruleset set -r CIMSLP -e false. Deploy across the estate within 3 days per the noisgate mitigation SLA for CRITICAL.
  2. Block TCP/UDP 427 at the segment boundary of the ESXi mgmt VLAN — Northbound ACL on the ToR/firewall closing 427 in both directions to/from the mgmt VLAN. Belt-and-braces with the daemon disable; if a host is re-imaged or slpd is re-enabled the ACL still holds. Same 3-day mitigation window.
  3. Move all ESXi 5.5 workloads onto a supported version — 5.5 → 6.7 → 7.0/8.0 upgrade path; if hardware is incompatible, evacuate VMs to supported hosts. Target completion within 90 days per the noisgate remediation SLA — this is the only real fix, patching a 2015 build leaves you exposed to everything shipped after.
  4. Verify vCenter and backup credentials are unique per host tier — If a compromised 5.5 host has cached vCenter admin creds, one RCE becomes fleet takeover. Rotate any credential ever entered on a 5.5 host and enforce tiered vCenter accounts with PAM checkout.
  5. Confirm backup immutability for VM data — Veeam hardened repository, S3 Object Lock, or tape airgap — the ESXiArgs ransom pattern is what you are actually defending against here. Should already exist; audit within the same 3-day window.
What doesn't work
  • Host-based EDR on the *guest* VMs — the compromise is on the hypervisor, guest agents are blind to it and can be terminated from the host
  • Applying the 2015 patch to ESXi 5.5 and stopping — 5.5 has been out of support since 2020; you are still exposed to CVE-2019-5544, CVE-2020-3992, CVE-2021-21974, and CVE-2023-20867 among others
  • Web Application Firewalls — SLP is not HTTP; a WAF sees nothing on port 427
  • MFA on vSphere Client — the OpenSLP RCE bypasses the auth plane entirely
  • Perimeter firewall alone if the mgmt VLAN is flat internally — a foothold on any workstation reaches port 427
06 · Verification

Crowdsourced verification payload.

Run on the ESXi host itself via SSH as root, or from an auditor workstation with SSH key access — e.g. ssh [email protected] 'bash -s' < check_vmsa_2015_0007.sh. Requires read access to vmware -v, esxcli system version get, and esxcli system slp (5.5 build). Exits 2 = VULNERABLE, 0 = PATCHED, 1 = UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/sh
# noisgate: VMSA-2015-0007 / CVE-2015-2342 check for ESXi 5.5
# Target: ESXi shell. Run as root.
set -u

VER=$(vmware -v 2>/dev/null)
BUILD=$(esxcli system version get 2>/dev/null | awk -F': ' '/Build/ {print $2}')
PRODUCT=$(esxcli system version get 2>/dev/null | awk -F': ' '/Version/ {print $2}')

if [ -z "$BUILD" ] || [ -z "$PRODUCT" ]; then
  echo "UNKNOWN: unable to read ESXi version/build"
  exit 1
fi

echo "Detected: $VER (Version $PRODUCT, Build $BUILD)"

# Only ESXi 5.5 is in scope for this plugin; other majors covered by 86945/86946 + later plugins
case "$PRODUCT" in
  5.5.*)
    FIXED_BUILD=3029944
    if [ "$BUILD" -lt "$FIXED_BUILD" ] 2>/dev/null; then
      # Also check SLP daemon status as compensating control indicator
      SLP=$(esxcli network firewall ruleset list 2>/dev/null | awk '/CIMSLP/ {print $2}')
      SLPD=$(/etc/init.d/slpd status 2>/dev/null | head -1)
      echo "VULNERABLE: ESXi 5.5 build $BUILD < $FIXED_BUILD (VMSA-2015-0007 / CVE-2015-2342)"
      echo "  SLP firewall ruleset: ${SLP:-unknown}"
      echo "  slpd status:          ${SLPD:-unknown}"
      echo "  Note: ESXi 5.5 reached end of technical guidance 2020-09-19 — upgrade, do not just patch."
      exit 2
    else
      echo "PATCHED: ESXi 5.5 build $BUILD >= $FIXED_BUILD"
      echo "  WARNING: 5.5 is EOL; upgrade to a supported major regardless."
      exit 0
    fi
    ;;
  *)
    echo "UNKNOWN: host is $PRODUCT, not ESXi 5.5 — use sibling plugin/script for this major"
    exit 1
    ;;
esac
07 · Bottom Line

If you remember one thing.

TL;DR
Treat every host that fires plugin 86947 as an incident-in-waiting, not a patch ticket. Monday morning: (1) enumerate every ESXi 5.5 host in scope from Tenable, vCenter inventory, and CMDB; (2) within 3 days — the noisgate mitigation SLA for CRITICAL — disable slpd, close 427/tcp+udp at the mgmt VLAN boundary, and rotate any credential ever cached on a 5.5 host; (3) within 90 days — the noisgate remediation SLA — evacuate all VMs to a supported ESXi major (7.0/8.0) and decommission the 5.5 hosts, because patching a 2015 build leaves you exposed to CVE-2019-5544, CVE-2020-3992, CVE-2021-21974 (ESXiArgs) and CVE-2023-20867 among others. If any of these hosts are internet-reachable on 427, mitigate today, not in three days.

Sources

  1. Tenable plugin 86947
  2. VMware VMSA-2015-0007 advisory
  3. NVD — CVE-2015-2342
  4. CVE-2021-21974 PoC walkthrough (same OpenSLP code path)
  5. CISA KEV — CVE-2021-21974 (ESXiArgs)
  6. VMware Lifecycle Product Matrix (ESXi 5.5 EOL)
  7. VMware KB 76372 — Disabling SLP on ESXi
  8. Vulners — OpenVAS entry for VMSA-2015-0007
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.