Skip to content

CVE-2025-22224 — vCenter Server, Cloud Foundation

Key facts

CVE-2025-22224 (VMware (Broadcom)) is a Critical vulnerability: vCenter Server, Cloud Foundation. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-03-04), confirming active exploitation in the wild.

Actively exploited — on the CISA KEV catalog

CVE-2025-22224 is listed on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-03-04), confirming exploitation in the wild. Federal remediation deadline: 2025-03-25. Prioritise patching and deploy the detection and prevention rules below.

CVE CVE-2025-22224
Severity Critical
CISA KEV Actively exploited (added 2025-03-04)
Vendor VMware (Broadcom)
Product vCenter Server, Cloud Foundation
Detection / prevention Snort, YARA, Nginx, Apache
PoC poc.py
Source 2025/CVE-2025-22224/

Details

CVE-2025-22224 (VMware (Broadcom)) is a Critical vulnerability: vCenter Server, Cloud Foundation. This entry ships a detection-only proof-of-concept (PoC), a Docker test lab, and ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) — see Detection and prevention below. Source: NVD record.

VMware vCenter Server - Heap Overflow RCE

Overview

Field Value
CVE ID CVE-2025-22224
Severity Critical (CVSS 9.3)
Vendor VMware (Broadcom)
Product vCenter Server, Cloud Foundation
Vulnerability Type Heap Overflow / RCE
Exploitation Network, Low Complexity

Description

VMware vCenter Server contains a heap-overflow vulnerability in the implementation of the DCERPC protocol. A malicious actor with network access to vCenter Server may trigger this vulnerability by sending a specially crafted network packet leading to remote code execution.

Affected Versions

  • VMware vCenter Server 8.0 before 8.0 U3d
  • VMware vCenter Server 7.0 before 7.0 U3t
  • VMware Cloud Foundation 5.x, 4.x

Impact

  • Remote Code Execution
  • Virtual infrastructure compromise
  • VM escape potential
  • Data center takeover
  • Lateral movement across virtualized environments

Verification Process

The PoC uses a multi-stage verification approach:

Step 1: Product/Version Detection (Passive)

[*] Query target endpoint
[*] Detect product signatures and extract version
[*] Check if version is in vulnerable range

Step 2: Active Vulnerability Testing

Method Description Detection
Error-based Tests for error messages indicating vulnerability Error indicators in response
Timing-based Measures response delay with payload Response time significantly longer
Response-based Checks for expected patterns in response Vulnerability indicators present

Verification Flow

┌─────────────────────────────────────────────────────────────┐
│                    Product Detection                         │
│  Query target → Detect product/version                      │
│  Check if version in vulnerable range                       │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│               Active Vulnerability Testing                   │
│                                                              │
│  1. Error-based Test                                         │
│     └─ Send payload → Check for error indicators            │
│     └─ If error found → CONFIRMED VULNERABLE                │
│                                                              │
│  2. Timing-based Test                                        │
│     └─ Send delay payload → Measure response time           │
│     └─ If delayed → CONFIRMED VULNERABLE                    │
│                                                              │
│  3. Response-based Test                                      │
│     └─ Send payload → Check response content                │
│     └─ If pattern matches → CONFIRMED VULNERABLE            │
└─────────────────────────────────────────────────────────────┘

Usage

# Full vulnerability check (version + active testing)
python3 poc.py -t https://target.com -c

# Version-only check (passive, no payloads sent)
python3 poc.py -t https://target.com -c --version-only

References

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22224
  • https://www.vmware.com/security/advisories/

Disclaimer

This POC is for educational and authorized security testing only.

Detection and prevention

Ready-to-deploy defensive rules for CVE-2025-22224, for authorized testing and blue-team detection engineering:

References: NVD — CVE-2025-22224 · full write-up on the searchable site

Detection & prevention rules

# CVE-2025-22224 - VMware vCenter Heap Overflow Snort Rules
# Severity: Critical (CVSS 9.3)

# Detect vCenter SDK access
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTPS_PORTS (
    msg:"CVE-2025-22224 vCenter SDK Access";
    flow:to_server,established;
    content:"/sdk"; http_uri;
    classtype:web-application-activity;
    sid:2025222241;
    rev:1;
    metadata:cve CVE-2025-22224, severity high;
)

# Detect DCERPC bind pattern
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTPS_PORTS (
    msg:"CVE-2025-22224 DCERPC Bind Pattern";
    flow:to_server,established;
    content:"|05 00 0B|";
    classtype:attempted-admin;
    sid:2025222242;
    rev:1;
    metadata:cve CVE-2025-22224, severity critical;
)

# Detect oversized DCERPC request
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTPS_PORTS (
    msg:"CVE-2025-22224 Oversized DCERPC Request";
    flow:to_server,established;
    content:"|05 00|"; depth:2;
    dsize:>4096;
    classtype:attempted-admin;
    sid:2025222243;
    rev:1;
    metadata:cve CVE-2025-22224, severity critical;
)

# Detect heap spray pattern
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTPS_PORTS (
    msg:"CVE-2025-22224 Heap Spray Pattern";
    flow:to_server,established;
    content:"|41 41 41 41 41 41 41 41|";
    byte_test:4,>,100,0,relative;
    classtype:attempted-admin;
    sid:2025222244;
    rev:1;
    metadata:cve CVE-2025-22224, severity critical;
)

# Detect vCenter reconnaissance
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTPS_PORTS (
    msg:"CVE-2025-22224 vCenter Version Probe";
    flow:to_server,established;
    content:"vimServiceVersions.xml"; http_uri;
    detection_filter:track by_src, count 5, seconds 60;
    classtype:attempted-recon;
    sid:2025222245;
    rev:1;
    metadata:cve CVE-2025-22224, severity medium;
)

:material-file-download: prevention/snort.rules

/*
 * CVE-2025-22224 - VMware vCenter Heap Overflow YARA Rules
 * Severity: Critical (CVSS 9.3)
 */

rule CVE_2025_22224_DCERPC_Exploit {
    meta:
        description = "Detects DCERPC exploitation patterns for CVE-2025-22224"
        author = "Security Research"
        date = "2025-03-04"
        cve = "CVE-2025-22224"
        severity = "critical"

    strings:
        // DCERPC header patterns
        $dcerpc_bind = { 05 00 0B 03 10 00 00 00 }
        $dcerpc_request = { 05 00 00 03 10 00 00 00 }

        // Overflow patterns
        $overflow1 = /A{500,}/ ascii
        $overflow2 = /\x41{500,}/ ascii

        // VMware specific
        $vmware1 = "vCenter" ascii wide nocase
        $vmware2 = "vim.ServiceInstance" ascii wide
        $vmware3 = "vpxd" ascii wide

    condition:
        (any of ($dcerpc*) and any of ($overflow*)) or
        (any of ($dcerpc*) and any of ($vmware*))
}

rule CVE_2025_22224_Heap_Spray {
    meta:
        description = "Detects heap spray patterns for vCenter exploitation"
        author = "Security Research"
        date = "2025-03-04"
        cve = "CVE-2025-22224"
        severity = "critical"

    strings:
        // Common heap spray patterns
        $spray1 = { 0C 0C 0C 0C 0C 0C 0C 0C }
        $spray2 = { 0D 0D 0D 0D 0D 0D 0D 0D }
        $spray3 = { 41 41 41 41 41 41 41 41 }

        // NOP sled variations
        $nop1 = { 90 90 90 90 90 90 90 90 }
        $nop2 = { EB 02 90 90 }

    condition:
        (for any of ($spray*): (# > 100)) or
        (for any of ($nop*): (# > 50))
}

rule CVE_2025_22224_Network_Traffic {
    meta:
        description = "Detects network traffic patterns for CVE-2025-22224"
        author = "Security Research"
        date = "2025-03-04"
        cve = "CVE-2025-22224"
        severity = "high"

    strings:
        // HTTP to vCenter
        $http1 = "POST /sdk" ascii
        $http2 = "POST /mob" ascii
        $http3 = "/vimServiceVersions.xml" ascii

        // DCERPC over HTTP
        $rpc1 = "ncacn_http" ascii
        $rpc2 = "RPC_IN_DATA" ascii
        $rpc3 = "RPC_OUT_DATA" ascii

    condition:
        any of ($http*) or any of ($rpc*)
}

:material-file-download: prevention/yara.yar

# CVE-2025-22224 - VMware vCenter Prevention Rules for Nginx
# Use as reverse proxy protection

# Block direct access to vCenter from untrusted networks
location / {
    # Only allow from management networks
    allow 10.0.0.0/8;
    allow 192.168.0.0/16;
    deny all;

    # Log all access
    access_log /var/log/nginx/vcenter-access.log;
}

# Block suspicious DCERPC-like requests
location ~* ^/(sdk|mob|vpxa) {
    # Restrict access
    allow 10.0.0.0/8;
    deny all;

    # Size limits
    client_max_body_size 10M;
    client_body_buffer_size 128k;

    # Log access
    access_log /var/log/nginx/vcenter-api.log;
}

# Block oversized requests that might trigger overflow
server {
    client_max_body_size 50M;
    client_body_buffer_size 256k;
    large_client_header_buffers 4 16k;

    # Reject suspicious patterns
    if ($request_body ~* "AAAA{1000,}") {
        return 400;
    }

    # Rate limiting
    limit_req zone=vcenter_limit burst=20 nodelay;
}

# Rate limit zone
# limit_req_zone $binary_remote_addr zone=vcenter_limit:10m rate=30r/s;

:material-file-download: prevention/nginx.conf

# CVE-2025-22224 - VMware vCenter Prevention Rules for Apache HTTPD

# Restrict vCenter access
<LocationMatch "^/(sdk|mob|vpxa)">
    <RequireAll>
        Require ip 10.0.0.0/8
        Require ip 192.168.0.0/16
    </RequireAll>
    CustomLog /var/log/httpd/vcenter-api.log combined
</LocationMatch>

# ModSecurity Rules
<IfModule mod_security2.c>
    # Block oversized DCERPC-like requests
    SecRule REQUEST_BODY_LENGTH "@gt 10485760" \
        "id:2025222241,phase:2,deny,status:413,\
        msg:'CVE-2025-22224 Oversized Request to vCenter',\
        severity:CRITICAL"

    # Block heap spray patterns
    SecRule REQUEST_BODY "@rx (?:A{1000,}|\\x41{1000,})" \
        "id:2025222242,phase:2,deny,status:400,\
        msg:'CVE-2025-22224 Potential Heap Spray Pattern',\
        severity:CRITICAL"

    # Block DCERPC exploitation patterns
    SecRule REQUEST_BODY "@rx \\x05\\x00\\x0b" \
        "id:2025222243,phase:2,log,\
        msg:'CVE-2025-22224 DCERPC Bind Pattern Detected'"
</IfModule>

# Request limits
LimitRequestBody 52428800
LimitRequestLine 8190

:material-file-download: prevention/httpd.conf

Frequently asked questions

What is CVE-2025-22224?

CVE-2025-22224 (VMware (Broadcom)) is a Critical vulnerability: vCenter Server, Cloud Foundation. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-03-04), confirming active exploitation in the wild.

How do I detect CVE-2025-22224?

Deploy the Snort and YARA detection rule included with this entry (see Detection & prevention rules below), then validate it against the detection-only PoC in the Docker test lab.

How do I block or mitigate CVE-2025-22224?

Apply the Nginx and Apache mitigation config included with this entry, and upgrade to a fixed version per the vendor advisory (see the NVD record for affected versions).

Is CVE-2025-22224 actively exploited?

Yes. CVE-2025-22224 is on the CISA Known Exploited Vulnerabilities (KEV) catalog, added 2025-03-04, which means it has been exploited in the wild. CISA set a federal remediation deadline of 2025-03-25. Prioritise patching and deploy the detection and prevention rules above.


For authorized security testing and research only. See the full source and NVD record.