← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
tenable:237247 · Disclosed 2025-05-20

VMware vCenter Server 7

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a trapdoor hidden behind the staff-only door, not a broken lock on the front gate

Tenable plugin 237247 maps to CVE-2025-41225, an authenticated command-execution flaw in VMware vCenter Server. Affected ranges are 7.0.x before 7.0 U3v and 8.0.x before 8.0 U3e; Broadcom also extends impact to VMware Cloud Foundation 5.x/4.5.x and several Telco Cloud bundles carrying the same vCenter component. The bug lets a user who can create or modify alarms and use the Run Script action cause command execution on the vCenter host itself.

The vendor's HIGH/8.8 score captures the *impact* correctly but overstates the *reach* for most enterprises. This is not an unauthenticated edge bug and not even a generic low-privilege user bug; it requires a post-auth, role-constrained position inside the virtualization management plane. In real fleets, that sharply shrinks the exposed population, so this lands as a MEDIUM operational priority unless you know those privileges are broadly delegated or already suspect vCenter admin credential theft.

"Serious impact, but it starts after the attacker already holds a rare vCenter admin-style privilege."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Get a vCenter session with alarm-script rights

The attacker first needs authenticated access to vCenter with enough RBAC to create or modify alarms and set a Run Script action. In practice this is usually obtained through stolen admin credentials, delegated virtualization-ops accounts, or a prior compromise of an admin workstation. Tools likely used here are the normal vSphere UI, API clients, or automation such as govc and pyVmomi.
Conditions required:
  • Authenticated access to vCenter
  • Privileges to create/modify alarms
  • Privilege to configure or use script-based alarm actions
Where this breaks in practice:
  • Most enterprises keep these rights to a small virtualization-admin group
  • MFA, PAM, and jump-host workflows reduce casual credential abuse
  • This prerequisite already implies post-initial-access or insider position
Detection/coverage: Identity tools, PAM logs, and vCenter auth logs should show the login path, but scanners cannot validate the privilege assignment itself.
STEP 02

Prepare a malicious alarm action

Using vSphere management tooling, the attacker creates or edits an alarm and configures the script action so that a chosen command will run on the vCenter appliance. This abuses a trusted management feature rather than spraying malformed packets at a network service. govc alarm.* or direct API/UI operations are the most plausible weaponized paths.
Conditions required:
  • An object scope where the attacker can manage alarms
  • Ability to store or reference a script/command payload
Where this breaks in practice:
  • Alarm configuration changes are administrative events and can be audited
  • Some shops disable script-based operational workflows entirely
  • Change-control noise around vCenter often makes new alarms noticeable
Detection/coverage: Look for new or modified alarms, especially ones adding Run Script actions; configuration-drift tools and vCenter event history are the main detection points.
STEP 03

Trigger execution on the appliance

The attacker then causes the alarm condition to fire so vCenter executes the configured action. At that point the issue crosses from control-plane abuse into host-level command execution on the vCenter server, with potential access to credentials, certificates, and management integrations.
Conditions required:
  • A triggerable alarm condition
  • vCenter services able to execute the configured action
Where this breaks in practice:
  • Trigger conditions may need object access or environmental knowledge
  • EDR on the appliance or process-monitoring can catch unusual child processes
  • Some hardened environments restrict outbound connectivity, limiting post-exec staging
Detection/coverage: Host telemetry is decisive here: process creation from vCenter service contexts, shell invocation, suspicious child processes, and unexpected files in temporary paths.
STEP 04

Pivot from vCenter to the wider vSphere estate

A compromised vCenter is high-value because it is the management plane for clusters, hosts, snapshots, templates, permissions, and often backup/inventory integrations. An attacker can use native APIs or stolen secrets from the appliance to move into ESXi hosts, connected workloads, or automation accounts.
Conditions required:
  • Successful code execution on vCenter
  • Useful secrets, tokens, or management connectivity present on the appliance
Where this breaks in practice:
  • Blast radius still depends on how much authority that vCenter instance holds
  • Separate admin domains, segmented management networks, and secret rotation can contain follow-on abuse
  • Some environments run multiple vCenters, limiting compromise to one management island
Detection/coverage: Post-exploitation should surface in vCenter task logs, API usage spikes, credential access, and unusual admin activity against ESXi, clusters, or integrated tools.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo public evidence found of active exploitation during this review; not listed in CISA KEV.
PoC availabilityNo solid public PoC repository surfaced in primary search results; Tenable still states Exploit Ease: No known exploits are available.
EPSSObserved via stack.watch: 0.03% EPSS, 7.47th percentile.
KEV statusNot present in the CISA Known Exploited Vulnerabilities Catalog.
CVSS vectorBroadcom/Tenable baseline is CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 HIGH). Notably, the CVE.org record snippet shows a different CNA vector (AV:L ... S:C), so scoring metadata is inconsistent across sources.
Affected versionsvCenter 7.0.x < 7.0 U3v and 8.0.x < 8.0 U3e; Broadcom also maps affected bundled vCenter in VCF 5.x/4.5.x and multiple Telco Cloud releases.
Fixed versionsPatch to vCenter Server 7.0 U3v or 8.0 U3e; bundled products inherit fixes through Broadcom async patch guidance where applicable.
Scanner coverageTenable detection is version-only: it explicitly says Nessus did not test exploitability and relied on the product's self-reported version.
Exposure dataCurrent public-search surface still exists for internet-facing vCenter: a live Shodan vcenter query showed 1,307 matches in the indexed snippet. That is not CVE-specific, but it confirms there is still reachable population when admins expose the control plane.
Disclosure / creditsDisclosed 2025-05-20 in VMSA-2025-0010; Broadcom credits Oliver Bachtik and Bert De Bruijn.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (6.4/10)

The decisive factor is the attacker position requirement: this starts with an authenticated vCenter user who already has a narrow, administrative capability set around alarms and script actions. That makes it a post-initial-access control-plane abuse path, not a broad front-door compromise, even though the eventual impact on a vCenter server can be severe.

HIGH Affected version ranges and fixed releases
HIGH Privilege prerequisite materially narrows exposure
MEDIUM Public exploitation and PoC visibility

Why this verdict

  • Requires authenticated remote access first: this is not unauthenticated edge exposure; the attacker must already be inside the vCenter trust boundary.
  • Requires a specific privileged role: create/modify alarms plus script-action capability is a much smaller population than 'any vCenter user,' which pushes the vendor's impact-heavy score down.
  • vCenter compromise is still consequential: if exploited, the blast radius can be large because vCenter is the virtualization control plane, so this stays above LOW.

Why not higher?

There is no evidence here of mass-reachable exploitation conditions like unauthenticated RCE, broad default exposure, or KEV-listed abuse. Every prerequisite in the chain compounds downward: authenticated access, then specific RBAC, then successful alarm manipulation, then execution and pivot.

Why not lower?

Once the preconditions are met, the payoff is not minor. Command execution on vCenter can expose a management-plane crown jewel, including secrets, automation trust, and administrative reach into clusters and hosts, so treating it as mere backlog hygiene would understate the impact.

05 · Compensating Control

What to do — in priority order.

  1. Trim alarm-script privileges — Review vCenter roles and remove create/modify alarms and script-action capability from anyone who does not truly need it. For a MEDIUM finding there is no mitigation SLA — go straight to the 365-day remediation window, but this is the single best hardening move if patching is delayed.
  2. Alert on alarm creation and changes — Send vCenter events for alarm creation, modification, and trigger actions into your SIEM, and specifically flag the use of Run Script. There is no mitigation SLA for MEDIUM, so deploy this through normal detection engineering, but do not let it slip past the 365-day patch window.
  3. Isolate the management plane — Keep vCenter reachable only from admin jump hosts or management enclaves, not broad user networks and definitely not the open internet. This does not remove the bug, but it constrains who can reach the authenticated entry point while you patch inside the remediation window.
  4. Put vCenter admins behind PAM — Enforce MFA, session recording, and checkout controls for vCenter administration so stolen standing credentials are harder to use. That helps most at step 1 of the attack path, where real-world abuse would begin.
What doesn't work
  • A WAF is mostly irrelevant because this is not an unauthenticated HTTP exploit you can reliably signature at the edge; the abuse rides legitimate authenticated admin functionality.
  • Perimeter ACLs alone do not solve the problem if the attacker already operates from an approved admin segment or a compromised jump box.
  • Vulnerability scanning alone is insufficient because Tenable's check is version-based and does not tell you whether dangerous alarm/script privileges are broadly delegated.
06 · Verification

Crowdsourced verification payload.

Run this on the target vCenter Server Appliance, not from your scanner. Invoke it as sudo bash check_cve_2025_41225.sh; root or an account that can execute vpxd -v and read basic system files is recommended. The script checks the installed vCenter build and prints VULNERABLE, PATCHED, or UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2025_41225.sh
# Detects likely exposure to CVE-2025-41225 on VMware vCenter Server Appliance.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -u

VC7_FIXED_BUILD=24730281
VC8_FIXED_BUILD=24674346

have_cmd() {
  command -v "$1" >/dev/null 2>&1
}

extract_build() {
  local src="$1"
  echo "$src" | grep -Eo 'build-?[[:space:]]*[0-9]+' | grep -Eo '[0-9]+' | head -n1
}

extract_version() {
  local src="$1"
  echo "$src" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1
}

RAW=""
if have_cmd vpxd; then
  RAW="$(vpxd -v 2>/dev/null || true)"
fi

if [ -z "$RAW" ] && [ -r /etc/vmware/.buildInfo ]; then
  RAW="$(cat /etc/vmware/.buildInfo 2>/dev/null || true)"
fi

if [ -z "$RAW" ]; then
  echo "UNKNOWN: could not obtain vCenter version/build from vpxd or /etc/vmware/.buildInfo"
  exit 2
fi

BUILD="$(extract_build "$RAW")"
VERSION="$(extract_version "$RAW")"

if [ -z "$VERSION" ]; then
  echo "UNKNOWN: could not parse version from: $RAW"
  exit 2
fi

MAJOR="$(echo "$VERSION" | cut -d. -f1)"
MINOR="$(echo "$VERSION" | cut -d. -f2)"
PATCH="$(echo "$VERSION" | cut -d. -f3)"

# Only vCenter 7.0.x and 8.0.x are in scope for this advisory.
if [ "$MAJOR" = "7" ] && [ "$MINOR" = "0" ]; then
  if [ -z "$BUILD" ]; then
    echo "UNKNOWN: detected vCenter $VERSION but no build number was parseable"
    exit 2
  fi
  if [ "$BUILD" -lt "$VC7_FIXED_BUILD" ]; then
    echo "VULNERABLE: vCenter $VERSION build $BUILD is older than 7.0 U3v build $VC7_FIXED_BUILD"
    exit 1
  else
    echo "PATCHED: vCenter $VERSION build $BUILD meets or exceeds 7.0 U3v build $VC7_FIXED_BUILD"
    exit 0
  fi
elif [ "$MAJOR" = "8" ] && [ "$MINOR" = "0" ]; then
  if [ -z "$BUILD" ]; then
    echo "UNKNOWN: detected vCenter $VERSION but no build number was parseable"
    exit 2
  fi
  if [ "$BUILD" -lt "$VC8_FIXED_BUILD" ]; then
    echo "VULNERABLE: vCenter $VERSION build $BUILD is older than 8.0 U3e build $VC8_FIXED_BUILD"
    exit 1
  else
    echo "PATCHED: vCenter $VERSION build $BUILD meets or exceeds 8.0 U3e build $VC8_FIXED_BUILD"
    exit 0
  fi
else
  echo "PATCHED: version $VERSION is outside the affected 7.0.x / 8.0.x ranges checked by this script"
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull a list of every internet-reachable or broadly reachable vCenter, validate who has alarm/script privileges, and confirm whether any production vCenters are still below 7.0 U3v or 8.0 U3e. Because this is MEDIUM, there is noisgate mitigation SLA: no mitigation SLA — go straight to the 365-day remediation window; use that time to tighten RBAC and alerting, but do not let patching drift past the noisgate remediation SLA of 365 days.

Sources

  1. Tenable plugin 237247
  2. Broadcom VMSA-2025-0010
  3. NVD CVE-2025-41225
  4. CVE.org record
  5. CISA KEV catalog
  6. Shodan vCenter search
  7. vCenter build history
  8. Azure VMware Solution build reference
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.