VMware vCenter Syslog Server Directory Traversal RCE — CVE-2026-59310
Executive Summary
CVE-2026-59310 is a critical (CVSSv3.1 9.8) directory-traversal vulnerability in VMware vCenter's Syslog Server, disclosed by Broadcom on 2026-07-29 (VMSA-2026-0006) alongside a paired authentication-bypass flaw (CVE-2026-59309, also 9.8). The attacker's objective is straightforward and severe: the vCenter syslog collector is designed to accept inbound data from managed ESXi hosts and network devices with no authentication, so any network-adjacent attacker can write outside the intended log directory and achieve arbitrary code execution on the appliance that controls every VM, host, and snapshot in the environment. No vendor workaround exists — patching is the only fix.
Five days after public disclosure, German incident-response firm QUIRSO observed active exploitation beginning 2026-08-03, reaching 95% of an eventual 361 victim IPs across 47 countries within 48 hours. Post-exploitation, the actor installs a cron job on the appliance's Photon OS to relaunch reverse_ssh, an open-source Go-based reverse-SSH tool, for durable outbound C2. Attribution is unconfirmed — press coverage raises circumstantial, not confirmed, stylistic overlap with UNC5174's history of weaponizing VMware flaws.
The highest-value defensive angle here is behavioral, not IOC-driven: no source in this pack's research turned up a single published hash, C2 domain, or C2 IP. Every detection in this pack hunts the attack chain itself — anomalous syslog-service child processes, cron-persistence writes, and outbound SSH connect-back from an appliance that should never initiate that traffic — rather than waiting on a blocklist feed that does not yet exist.
No workaround exists for CVE-2026-59310. Patch to vCenter 9.1.0.0300 / 9.0.2.0100 / 8.0 U3k / 8.0 U2f immediately. QUIRSO's telemetry shows exploitation began just 5 days after disclosure and reached 95% of eventual victims within 48 hours of first contact — the gap between advisory and patch is the entire exposure window, and patching alone does not remove persistence already installed. Audit cron on every vCenter appliance regardless of patch status.Source Review & Web Hunter Notes
Seven sources fetched and saved verbatim to VMware-vCenter-CVE-2026-59310-Hunt-sources/ for IOC-provenance tracing. All five press write-ups independently cite the same underlying QUIRSO GmbH incident-response research (published ~2026-08-10); QUIRSO's original post was not directly reachable within the research scope, so campaign-timeline facts are corroborated across 5 independent secondary sources rather than traced to the primary. No content in any fetched source attempted to direct this agent's behavior — all extracted text was pure threat-intel prose.
| # | Source | Tier | Type | Contribution |
|---|---|---|---|---|
| 1 | The Hacker News | T2 | Press | Campaign summary, attribution framing, victim count |
| 2 | GBHackers | T2 | Press | Timeline detail, fixed-version list |
| 3 | CyberPress | T2 | Press | Geographic breakdown, YARA-rule mention (content not retrievable) |
| 4 | Cyber Security News | T2 | Press | Per-country IP counts, reverse_ssh tool description |
| 5 | SC Media | T2 | Press | Expert quotes, cron-audit guidance |
| 6 | Broadcom VMSA-2026-0006 | T1 | Vendor primary | CVSS, affected versions, fixed versions, no-workaround statement |
| 7 | Rapid7 | T1 | Researcher primary | Independent CVSS/version confirmation, pre-exploitation baseline |
Confidence note: vulnerability facts (CVSS, affected/fixed versions, no-workaround) are High confidence — two independent T1 sources agree. Campaign facts (victim counts, timeline, reverse_ssh behavior) are Medium confidence — five T2 sources agree closely but all trace to one uningested T3 primary (QUIRSO).
Hunt Brief & Attack Chain
Hypothesis set — each numbered hypothesis below maps directly to a CQL query in Section 8:
- If CVE-2026-59310 is being exploited, the vCenter syslog service (or its process tree) spawns an unexpected shell/interpreter/reverse_ssh child process.
- If post-exploitation persistence is installed, a new or modified cron entry appears on the appliance outside a documented VMware maintenance window.
- If reverse_ssh is deployed, a binary named
reverse_ssh(or executed from a non-standard path like/tmp) runs on the appliance. - If reverse_ssh is maintaining C2, the appliance initiates outbound port-22 connections to non-RFC1918 destinations — traffic it should never originate.
- A single agent showing ≥2 of the above signal types within a short window is a high-confidence compromise chain.
| Stage | Description | MITRE | Observable |
|---|---|---|---|
| 1. Initial Access | Unauthenticated path-traversal write via the syslog collector service | T1190 | Syslog-parented child process; file write outside intended log directory |
| 2. Execution | Arbitrary code execution from the traversal write primitive | T1059 (inferred) | Unexpected interpreter/shell child of syslog-related parent |
| 3. Persistence | Cron job installed on Photon OS appliance to relaunch reverse_ssh | T1053.003 | Crontab / /etc/cron.d/ / /var/spool/cron/ write |
| 4. Command & Control | reverse_ssh establishes outbound SSH connect-back channel | T1572 | Outbound port-22 connection FROM the appliance to an external IP |
| 5. Defense Evasion | Outbound SSH-looking egress blends with expected admin traffic | T1036 (inferred) | No specific evasion mechanism published — flagged as a coverage gap |
Consolidated IOC Table
No atomic IOCs (hashes, C2 domains, C2 IPs) were published in any of the 7 saved sources as of 2026-08-13. Rows below are explicitly labelled behavioral or placeholder — no indicator has been fabricated to fill this table. See Section 10 for the import-ready grouped grid.
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| Tool name | reverse_ssh | Medium | hunt | Open-source Go reverse-SSH tool; specific fork/build unconfirmed. Sources: 1,2,3,4,5. |
| Persistence mechanism | Cron job on vCenter Photon OS appliance | Medium | hunt | No specific job name/schedule published. Sources: 1,5. |
| Behavior | Outbound SSH connect-back from vCenter appliance | Medium | hunt | Anomalous because syslog service is normally inbound-only. Sources: 1,2,4. |
| SHA256 | REPLACE_WITH_CONFIRMED_HASH | N/A — placeholder | enrich | No hash published in any fetched source. Not fabricated. |
| Domain | REPLACE_WITH_CONFIRMED_C2_DOMAIN | N/A — placeholder | enrich | No C2 domain published. Not fabricated. |
| IPv4 | REPLACE_WITH_CONFIRMED_C2_IP | N/A — placeholder | enrich | Only aggregate victim-IP counts were published, no attacker infrastructure. Not fabricated. |
| YARA rule | REPLACE_WITH_QUIRSO_YARA_RULE_IF_OBTAINED | N/A — placeholder | pivot | CyberPress references "YARA rules published by QUIRSO" but rule content was not retrievable from the 7 saved snapshots. |
Affected Surface & Telemetry Matrix
Affected products/versions: VMware vCenter Server (all versions prior to fixed releases). VMSA-2026-0006 as a whole also touches ESX, Workstation 25H2, Fusion 25H2, Cloud Foundation, vSphere Foundation, Telco Cloud Platform/Infrastructure via other CVEs in the same bulletin — CVE-2026-59310 itself is vCenter Syslog Server-specific.
Patch status: Available — 9.1.0.0300 / 9.0.2.0100 / 8.0 U3k / 8.0 U2f. Workarounds: None (Broadcom, verbatim: "There are no workarounds for CVE-2026-59309 or CVE-2026-59310").
Telemetry gap — read before deploying Section 8: the CQL queries in this pack assume Falcon sensor telemetry (ProcessRollup2/NetworkConnectIP4) on the host generating the events. VMware vCenter is a vendor-locked Photon OS appliance; installing a third-party EDR sensor directly on it is atypical and may be unsupported by Broadcom. Where sensor deployment on the appliance itself is not possible, use Section 7's native/audit-log hunts instead, or forward vCenter's syslog/audit output to Falcon LogScale as a custom log source and adapt field names to that ingest's schema before relying on Section 8 as-is.
| Surface | Telemetry Source | Priority | Gap |
|---|---|---|---|
| vCenter appliance process execution | Falcon sensor (if deployable) — ProcessRollup2/SyntheticProcessRollup2 | Critical | Sensor deployment on vendor-locked appliance may be unsupported — see callout above |
| vCenter appliance network egress | Falcon sensor NetworkConnectIP4, or network-layer NDR/firewall logs | Critical | Same sensor-deployment caveat; network-layer monitoring is the fallback |
| vCenter appliance cron/scheduler | Falcon sensor process events, or native crontab -l / file-integrity audit | High | None if native audit access is available |
| vCenter syslog server log directory | File-integrity monitoring on the appliance (native or third-party FIM) | High | Root-cause write primitive itself is not directly observable via standard Falcon process/network events |
ATT&CK Mapping
| Tactic | Technique | Behavior | Query / Control |
|---|---|---|---|
| Initial Access | T1190 — Exploitation of Public-Facing Application | Unauthenticated path-traversal write via vCenter syslog collector | Q1 (Sec. 8), IOA-1 (Sec. 9) |
| Execution | T1059 — Command and Scripting Interpreter (inferred) | Code execution from the traversal write primitive | Q1 (Sec. 8), IOA-1 (Sec. 9) |
| Persistence | T1053.003 — Scheduled Task/Job: Cron | Cron job installed to relaunch reverse_ssh | Q2 (Sec. 8), IOA-2 (Sec. 9) |
| Command & Control | T1572 — Protocol Tunneling | Outbound SSH connect-back from a normally inbound-only appliance | Q3, Q4 (Sec. 8) |
| Defense Evasion | T1036 — Masquerading (inferred) | SSH-looking egress blending with expected admin traffic; no specific evasion detail published | GAP — see Sec. 15 |
Native Audit-Log Hunts (Non-CQL)
Given the Section 5 telemetry gap, these native checks are frequently the only viable option on a vCenter appliance without a deployed EDR sensor. Run via direct appliance shell access (VAMI/Bash shell, enabled temporarily and disabled after) or via vCenter's native remote-syslog-forwarding feature into your SIEM/LogScale.
- Cron audit:
crontab -l -u rootandls -la /etc/cron.d/ /var/spool/cron/— flag any entry referencing a binary outside standard VMware appliance paths, especially anything in/tmp,/var/tmp, or a home directory. - Process spot-check:
ps aux | grep -i sshand diff against a known-good appliance baseline; look specifically for a process namedreverse_sshor an unlabeled statically-linked Go binary. - Outbound connection check:
netstat -tnp | grep :22orss -tnp | grep :22— the appliance should not be the initiator of outbound SSH sessions. - vpxd / syslog.log review: review the vCenter support bundle's
vpxd.logand the syslog server's own logs for anomalous entries around traversal-style path patterns (repeated../sequences or writes outside the configured log directory) beginning 2026-08-03 forward. - Remote syslog forwarding: vCenter natively supports forwarding to an external syslog target (VAMI > Syslog Configuration) — route this to your SIEM/LogScale if it isn't already, so these checks become queryable centrally rather than requiring appliance shell access each time.
- VAMI update-log review: confirm no unauthorized changes were made through the VAMI update mechanism outside your documented patch windows.
CrowdStrike LogScale CQL Hunt Queries
Looks for: a shell, script interpreter, or reverse_ssh spawned as a child of the vCenter syslog service — the direct behavioral signature of CVE-2026-59310's traversal-to-RCE chain. FP: VMware's own syslog log-rotation/helper scripts may legitimately spawn shell utilities; baseline your appliance version before treating hits as confirmed.
// HUNT: CVE-2026-59310 - T1190 Exploitation of Public-Facing Application (vCenter Syslog RCE) // MITRE: T1190 | CONF: medium FP: medium COST: low | REQUIRES: Falcon sensor process telemetry on the appliance // HYPOTHESIS: Syslog-service-initiated exploitation spawns an unexpected child process // TUNING: exclude ParentBaseFileName/FileName pairs matching your appliance's known syslog log-rotation and VAMI helper scripts before promoting to Block; baseline a patched, non-exploited appliance first // LOOKBACK: set via console time picker, recommend 2026-08-03 forward #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/syslog/i | FileName=/^(sh|bash|dash|python[0-9.]*|perl|reverse_ssh)$/i | table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, ImageFileName, FileName, CommandLine]) | sort(@timestamp, order=desc)
Looks for: new or modified cron entries on the appliance — the persistence mechanism QUIRSO observed following exploitation. FP: legitimate VMware patch/update cycles also touch cron via VAMI.
// HUNT: CVE-2026-59310 - T1053.003 Scheduled Task/Job: Cron persistence on vCenter appliance // MITRE: T1053.003 | CONF: medium FP: medium COST: low | REQUIRES: Falcon sensor process telemetry on the appliance // HYPOTHESIS: Post-exploitation persistence writes a new cron entry to relaunch reverse_ssh // TUNING: exclude cron writes originating from VAMI-driven patch/update processes; correlate timing against your documented maintenance windows before escalating // LOOKBACK: set via console time picker, recommend 2026-08-03 forward #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(crontab|cron)$/i or CommandLine=/(\/etc\/cron\.d\/|\/var\/spool\/cron\/|crontab -)/i | table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, CommandLine, ParentBaseFileName]) | sort(@timestamp, order=desc)
Looks for: execution of a binary literally named reverse_ssh, or any process launched from /tmp or /var/tmp on the appliance. FP: the path-based branch is broad — legitimate temp-directory script execution during patch/update workflows will also match; treat path-only hits as lower confidence than an exact reverse_ssh name match.
// HUNT: CVE-2026-59310 - T1572 Protocol Tunneling - reverse_ssh execution // MITRE: T1572 | CONF: medium FP: medium COST: low | REQUIRES: Falcon sensor process telemetry on the appliance // HYPOTHESIS: Attacker-deployed reverse_ssh binary executed, possibly from a non-standard path // TUNING: the ImageFileName /tmp|var/tmp branch is intentionally broad to catch renamed binaries; if it is too noisy in your environment, drop that branch and rely on the exact-name match only, accepting reduced coverage against a renamed binary // NOTE: SHA256HashData is included for analyst enrichment only - no known-malicious hash exists to filter on (REPLACE_WITH_CONFIRMED_HASH if one is later published and traced to a saved source). Do not add a fabricated hash here. // LOOKBACK: set via console time picker, recommend 2026-08-03 forward #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^reverse_?ssh$/i or ImageFileName=/^\/(tmp|var\/tmp)\//i | table([@timestamp, aid, ComputerName, UserName, FileName, ImageFileName, CommandLine, SHA256HashData]) | sort(@timestamp, order=desc)
Looks for: the appliance itself initiating outbound port-22 connections to non-RFC1918 destinations — vCenter is administered, it does not normally initiate SSH outbound. FP: admins occasionally SSH out from an appliance for legitimate diagnostics or backup-target access; exclude known jump-host/bastion source ranges.
// HUNT: CVE-2026-59310 - T1572 Protocol Tunneling - anomalous outbound SSH from vCenter appliance // MITRE: T1572 | CONF: medium FP: medium COST: medium | REQUIRES: Falcon sensor network + process telemetry on the appliance // HYPOTHESIS: A vCenter appliance (normally inbound-managed) initiates outbound SSH consistent with reverse_ssh connect-back // TUNING: exclude your organization's documented admin/bastion source ranges and any legitimate scheduled outbound SSH (e.g. backup-target sync jobs) before escalating on volume alone // NOTE: RemoteAddressIP4 has no known-bad value to pin to (REPLACE_WITH_CONFIRMED_C2_IP if one is later published and traced to a saved source). This surfaces candidates for manual triage, not a blocklist match. // LOOKBACK: set via console time picker, recommend 2026-08-03 forward #event_simpleName=NetworkConnectIP4 | RemotePort=22 | !cidr(RemoteAddressIP4, subnet="10.0.0.0/8") | !cidr(RemoteAddressIP4, subnet="172.16.0.0/12") | !cidr(RemoteAddressIP4, subnet="192.168.0.0/16") | rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal) | join(query={#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/}, field=TargetProcessId_decimal) | table([@timestamp, aid, ComputerName, UserName, ImageFileName, CommandLine, RemoteAddressIP4, RemotePort]) | sort(@timestamp, order=desc)
Looks for: a single agent showing ≥2 distinct signal types (syslog-parented child process, cron write, reverse_ssh execution) within the query window — the highest-confidence single check in this pack. This is the query wrapped into the alert package in Section 16. FP: individually noisy signals become high-confidence when they correlate on the same agent; still requires analyst review before declaring confirmed compromise.
// HUNT: CVE-2026-59310 - Correlated chain: syslog-service child process -> cron write -> reverse_ssh execution // MITRE: T1190, T1053.003, T1572 | CONF: high (full chain) / medium (partial) FP: low COST: medium | REQUIRES: Falcon sensor process telemetry on the appliance // HYPOTHESIS: A single aid showing >=2 correlated signal types is a high-confidence compromise chain for this CVE // TUNING: raise the match_count threshold to 3 (all signal types) for an even lower-noise, page-worthy alert; 2 is tuned for early-warning sensitivity // LOOKBACK: set via console time picker, recommend 2026-08-03 forward, 24h correlation window per aid #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/syslog/i or FileName=/^(crontab|reverse_?ssh)$/i | groupBy([aid, ComputerName], function=[collect([@timestamp, FileName, ImageFileName, ParentBaseFileName, CommandLine], limit=50), count(as=match_count)], limit=20000) | match_count >= 2 | sort(match_count, order=desc)
Custom IOA Recommendations
Both IOAs below require a Falcon sensor on the vCenter appliance itself — see the Section 5 telemetry-gap callout. Where sensor deployment isn't possible, treat these as aspirational and rely on Section 7's native audit hunts instead.
IOA-1 · vCenter Syslog Service Unexpected Child Process
| Field | Value |
|---|---|
| Rule Group | VMware vCenter Exploitation Defense |
| Rule Type | Process Creation |
| Action | Detect (do not promote to Block without 14+ days measured FP rate) |
| Severity | High |
| MITRE | T1190 |
| Parent Image Filename | .*syslog.* |
| Image Filename | .*(sh|bash|dash|python[0-9.]*|perl|reverse_ssh)$ |
FP tuning: VMware's own log-rotation/helper scripts under the syslog service may legitimately spawn shell utilities; baseline your specific appliance version's normal process tree first. Validation: in an isolated lab appliance (patched, non-production), manually spawn a benign shell as a child of the syslog service process, confirm the rule fires, then revert.
IOA-2 · Cron Persistence Write on vCenter Appliance
| Field | Value |
|---|---|
| Rule Group | VMware vCenter Exploitation Defense |
| Rule Type | Process Creation |
| Action | Detect |
| Severity | High |
| MITRE | T1053.003 |
| Command Line | .*(\/etc\/cron\.d\/|\/var\/spool\/cron\/|crontab -).* |
FP tuning: exclude VAMI-driven patch/update processes; correlate against documented maintenance windows. Validation: in an isolated lab appliance, add and remove a benign crontab entry to confirm the rule fires.
Machine-Readable IOC Appendix
No atomic IOCs were published for this campaign as of 2026-08-13 (see Section 4). The grid below is deliberately behavioral-first, with the Falcon CSV block carrying labelled placeholders rather than fabricated indicators.
type,value,action,severity,expiration,description,tags sha256,REPLACE_WITH_CONFIRMED_HASH,detect,high,2027-08-13,vCenter Syslog RCE payload - CVE-2026-59310,campaign:vCenterSyslogRCE domain,REPLACE_WITH_CONFIRMED_C2_DOMAIN,detect,high,2026-11-13,reverse_ssh C2 - CVE-2026-59310,campaign:vCenterSyslogRCE ipv4,REPLACE_WITH_CONFIRMED_C2_IP,detect,medium,2026-09-13,reverse_ssh C2 - CVE-2026-59310,campaign:vCenterSyslogRCE
FileName regex (exact binary name): ^reverse_?ssh$ Cron path indicators: /etc/cron.d/, /var/spool/cron/, "crontab -" Syslog-parented child process: ParentBaseFileName=/syslog/i + FileName in [sh,bash,dash,python*,perl,reverse_ssh] Outbound egress: RemotePort=22 initiated FROM the vCenter appliance to a non-RFC1918 destination Path-of-execution anomaly: ImageFileName under /tmp/ or /var/tmp/ on the appliance
Tool: reverse_ssh Type: open-source, Go-based reverse-SSH connect-back framework Capabilities (per press reporting): connect-back operation, port forwarding, file transfer, multiple transports, remote-shell management Specific fork/build used in this campaign: NOT confirmed by any fetched source Do not treat "reverse_ssh" as a unique atomic indicator - it is a public tool name, not a campaign-specific artifact. Use the behavioral signatures above.
Fixed releases (VMSA-2026-0006 / .1): vCenter 9.1.x -> 9.1.0.0300 vCenter 9.0.x -> 9.0.2.0100 vCenter 8.0 -> 8.0 U3k or 8.0 U2f Verify on the appliance: vpxd -v (or vSphere Client -> Help -> About) No workaround exists. Patch is the only remediation.
Detection Validation Gates
| Gate | Requirement | Status for this pack |
|---|---|---|
| Telemetry ready | Falcon sensor process + network events available for the vCenter appliance, or native/syslog-forwarded audit logs as fallback | VERIFY IN TENANT — sensor-on-appliance support varies; see Sec. 5 |
| Benign baseline | Run Q1-Q4 against a known-good, patched, non-exploited appliance to capture legitimate FP sources (log rotation, VAMI updates) before trusting hit volume | Not yet performed — required before Detect-mode reliance |
| Positive tests | Confirm each query/IOA fires against a deliberately triggered benign analog (see IOA validation notes, Sec. 9) on an isolated lab appliance | Not yet performed — recommended before operational reliance |
| Promotion | IOA-1 / IOA-2 run in Detect mode 14+ days with measured FP rate <5% before considering Block/Prevent | Not started — day 0 as of pack publication |
Hardening & Prevention
Primary Mitigations: M1051 (Update Software), M1030 (Network Segmentation), M1037 (Filter Network Traffic), M1022 (Restrict File and Directory Permissions)
- Patch vCenter to 9.1.0.0300 / 9.0.2.0100 / 8.0 U3k / 8.0 U2f (VMSA-2026-0006/.1). M1051; vendor advisory is authoritative — no workaround exists, this is not optional. ⚠ vendor guidance, no formal CIS benchmark for this CVE
- Remove vCenter management/syslog interfaces from direct internet exposure. Any internet-reachable appliance should be treated as presumptively compromised per QUIRSO's observed campaign and prioritized for immediate patch + forensic review. M1030, M1037.
- Restrict network access to the vCenter syslog collector to only the specific managed ESXi hosts/network devices that need to send it logs, via host firewall or upstream ACL. M1037.
- Audit existing cron configuration on every vCenter appliance now, before or immediately after patching — patching closes the entry point but does not remove persistence already installed. Check
/etc/cron.d/,/var/spool/cron/root, andcrontab -lfor entries invoking binaries from/tmp,/var/tmp, or a home directory. M1022.
- Deploy egress filtering on the vCenter appliance's network segment — default-deny outbound except explicitly required destinations (patch repos, NTP, DNS, syslog/SIEM forwarders); vCenter has no legitimate need to initiate outbound SSH. M1037.
- Enable file-integrity monitoring on the appliance's cron paths and the syslog server's log directory — flag writes outside the intended log path (the traversal primitive itself) and any crontab/
cron.dmodification outside a documented maintenance window. M1022. ⚠ best-practice, no formal CIS vCenter-appliance benchmark exists - Require VPN + MFA for all vCenter management-plane access — reduces attack surface for the paired CVE-2026-59309 auth-bypass flaw in the same advisory. M1032, M1030.
- Pilot IOA-1/IOA-2 in Detect-only mode for 14 days before considering Block/Prevent, per standard promotion practice (Sec. 11).
- Establish a documented vCenter patch-cadence SLA tied to Broadcom advisory severity — QUIRSO observed exploitation begin just 5 days after disclosure; a "patch within 5 business days for CVSS 9+ vCenter advisories" SLA directly addresses that exposure window.
- Segment vCenter and the broader vSphere management plane onto a dedicated, tightly-ACL'd management VLAN/subnet with no routable path from general enterprise/guest networks and no direct internet egress. M1030 — structural, but eliminates this entire exploitation class (network-adjacent, unauthenticated attacker), not just this one CVE.
- Extend audit logging/FIM coverage to all vSphere Foundation and Cloud Foundation components, not just vCenter, and forward logs to an external SIEM/LogScale so persistence artifacts survive even if the appliance is later reimaged. M1022, M1037.
What to verify after deployment
- Confirm patched version via
vpxd -vor the vSphere Client "About" panel — should report 9.1.0.0300 / 9.0.2.0100 / 8.0 U3k / 8.0 U2f or later. - Confirm cron audit is clean:
crontab -l -u rootandls -la /etc/cron.d/ /var/spool/cron/should show only recognized, documented entries. - Confirm egress filtering is effective: in a maintenance window, attempt an outbound connection to a test IP on port 22 and verify it is blocked.
- Spot-check with CQL: re-run Q2 (cron) and Q4 (outbound SSH) against the deployment-date window — a clean result plus continued monitoring is the expected steady state.
Deployable Playbooks
Playbook 1 — Cron Audit (run on each vCenter appliance)
What it does: lists all root-owned cron entries and cron.d/spool contents for manual review. Why it works: direct implementation of M1022 and the Section 12 immediate-tier audit recommendation.
#!/bin/sh # Run as root on the vCenter appliance shell (VAMI/Bash access). echo "=== crontab -l (root) ===" crontab -l -u root 2>/dev/null echo "=== /etc/cron.d/ ===" ls -la /etc/cron.d/ 2>/dev/null for f in /etc/cron.d/*; do [ -f "$f" ] && echo "--- $f ---" && cat "$f" done echo "=== /var/spool/cron/ ===" ls -la /var/spool/cron/ 2>/dev/null echo "=== flag entries referencing /tmp or /var/tmp ===" grep -rE '/(tmp|var/tmp)/' /etc/cron.d/ /var/spool/cron/ 2>/dev/null
Verify: output should contain only entries you recognize from documented VMware maintenance/patch activity. Escalate any unrecognized entry immediately.
Playbook 2 — Egress Filter for Outbound SSH (appliance-local, iptables)
What it does: blocks the appliance from initiating new outbound TCP/22 connections while leaving inbound (managed-host) syslog traffic untouched. Why it works: directly removes the reverse_ssh connect-back channel described in Section 3, Stage 4 (M1037).
# Review with your VMware support agreement before applying local iptables # changes on a vendor-supported appliance -- prefer an upstream network ACL # where policy allows it. Local rule shown for environments where it doesn't. iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW -j REJECT # Verify: iptables -L OUTPUT -n | grep ':22'
Verify: from the appliance, attempt ssh test-target to a benign external host in a maintenance window — connection should be refused.
Playbook 3 — Patch Version Verification (fleet-wide)
# Against each vCenter appliance's shell or via govc/PowerCLI at scale: vpxd -v # Expect: 9.1.0.0300+ / 9.0.2.0100+ / 8.0 U3k+ / 8.0 U2f+ # Anything earlier is unpatched and exploitable -- prioritize immediately.
Deploying via your RMM: the scripts above are raw shell. To wrap them for fleet deployment (admin check, error handling, custom-field writeback for compliance tracking), hand them to your RMM deployment tooling and ask for a deployable package.
Containment Runbook
| Phase | Actions | Owner | Evidence to Preserve |
|---|---|---|---|
| 1. Triage | Confirm affected system is a vCenter appliance; check patch version; run Q1/Q5 or the native cron audit (Sec. 7) | SOC analyst | Query results, appliance version output |
| 2. Isolate | If match_count ≥2 (Q5) or a confirmed reverse_ssh process is found, isolate the appliance's network segment (not the host itself where possible — vCenter isolation has operational impact; coordinate with infrastructure team) | SOC lead + Infra | Network isolation timestamp, ticket reference |
| 3. Eradicate | Remove identified cron persistence entries; kill and remove reverse_ssh process/binary; patch to a fixed version | Infra / VMware admin | Removed cron entry text, binary path/hash if recoverable, patch confirmation |
| 4. Recover | Re-run Q1-Q5 and the native audit checklist post-patch; confirm clean for 7 consecutive days before closing | SOC analyst | Clean query results, closure sign-off |
| 5. Lessons learned | Confirm egress filtering and FIM (Sec. 12 short-term tier) were deployed; update patch-cadence SLA if this was a missed-window case | SOC lead | Updated hardening tracker, SLA document |
Detection Coverage Map
| MITRE Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1190 | Exploitation of Public-Facing Application | Q1 | IOA-1 | Good (behavioral) |
| T1059 (inferred) | Command and Scripting Interpreter | Q1 | IOA-1 | Partial |
| T1053.003 | Scheduled Task/Job: Cron | Q2 | IOA-2 | Good (behavioral) |
| T1572 | Protocol Tunneling (reverse_ssh) | Q3, Q4 | — | Partial (name/behavior only, no atomic block) |
| T1036 (inferred) | Masquerading / evasion specifics | — | — | GAP |
Coverage summary: 4 of 5 identified techniques have at least partial behavioral detection coverage. 1 gap remains.
Priority gap: T1036 — sources only assert generic "firewall evasion" capability of reverse_ssh; no specific evasion technique (protocol mimicry, port choice, TLS wrapping) is documented, so no targeted query can be built without speculation. Monitor for updated QUIRSO/vendor detail and revise this pack when available.
Validation gates: see Section 11 in full — in short, telemetry availability on the vCenter appliance itself is the single biggest open question for this pack and must be confirmed in your tenant before relying on Section 8's queries operationally.
Hunt Summary Ticket
TITLE: vCenter Syslog RCE - Correlated Persistence Chain (CVE-2026-59310)
SEVERITY: Critical (CVSSv3.1 9.8, unauthenticated, active exploitation, no workaround)
SCOPE: All VMware vCenter Server appliances prior to 9.1.0.0300 / 9.0.2.0100 /
8.0 U3k / 8.0 U2f
HYPOTHESIS: A vCenter appliance showing >=2 of {syslog-parented child process,
cron-persistence write, reverse_ssh execution} on the same agent is a
high-confidence indicator of active CVE-2026-59310 exploitation and
reverse_ssh backdoor installation.
QUERIES: Q1 (syslog child process), Q2 (cron persistence), Q3 (reverse_ssh exec),
Q4 (outbound SSH connect-back), Q5 (correlated chain, alert-wrapped)
DO FIRST: 1) Confirm patch version on every vCenter appliance. 2) Run the native
cron audit (Sec. 7) regardless of patch status - patching does not
remove existing persistence. 3) Run Q5 if Falcon telemetry is available
on the appliance.
FINDINGS: Queries must be run manually against your tenant; this pack does not
execute them. A positive Q5 result (match_count >= 2) or a confirmed
reverse_ssh process/binary is CRITICAL - escalate to Containment
Runbook (Sec. 14) immediately.
GAPS: No atomic IOCs published anywhere as of 2026-08-13 (Sec. 4). T1036
evasion-specific coverage gap (Sec. 15). Falcon sensor-on-appliance
telemetry availability unconfirmed - verify in tenant (Sec. 5, 11).
ACTIONS: Patch (Immediate tier, Sec. 12) - mandatory, no workaround exists.
Cron audit - Immediate. Egress filtering + FIM - Short-term.
Network segmentation of vSphere management plane - Strategic.
OWNER: Assign to SOC + VMware/Infra admin jointly - this hunt requires both
EDR-side and appliance-side actions.
VERSION: v0.1 - 2026-08-13
Changelog
References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| T2 | The Hacker News — "Attackers Exploit VMware vCenter Vulnerability..." | Campaign summary, attribution framing | 2026-08-13 |
| T2 | GBHackers — "Hackers Exploit Critical VMware vCenter Flaw..." | Timeline, fixed versions | 2026-08-13 |
| T2 | CyberPress — "Critical VMware vCenter Directory Traversal Flaw..." | Geographic breakdown, YARA mention | 2026-08-13 |
| T2 | Cyber Security News — "Hackers Actively Exploiting VMware vCenter Systems..." | Per-country counts, tool description | 2026-08-13 |
| T2 | SC Media — "Critical VMware vCenter Flaw Actively Exploited in 47 Countries" | Expert quotes, cron-audit guidance | 2026-08-13 |
| T1 | Broadcom / VMware VMSA-2026-0006 | CVSS, affected/fixed versions, no-workaround statement | 2026-08-13 |
| T1 | Rapid7 — CVE-2026-59309 / CVE-2026-59310 analysis | Independent CVSS/version confirmation | 2026-08-13 |