Back to Intelligence

CVE-2026-114625: Arista VeloCloud Orchestrator SQL Injection — Detection and Remediation Guide

SA
Security Arsenal Team
October 23, 2026
13 min read

CISA added CVE-2026-114625 to the Known Exploited Vulnerabilities catalog on October 23, 2026, confirming active exploitation of an SQL injection vulnerability in Arista VeloCloud Orchestrator (VCO). This is not a theoretical risk. Threat actors are actively targeting on-premises VCO instances to access privileged internal functionality, compromise the orchestrator host, and potentially pivot into the broader SD-WAN infrastructure it manages.

VeloCloud Orchestrator sits at the center of VMware/Arista SD-WAN deployments, handling configuration management, monitoring, and policy distribution for edge devices across distributed enterprise networks. A successful exploit does not just compromise a single application — it threatens the confidentiality, integrity, and availability of your entire wide-area network fabric. If you operate an on-prem VCO instance, treat this as an immediate priority-one remediation event.

Technical Analysis

Affected Product: Arista VeloCloud Orchestrator (on-premises deployments)

CVE: CVE-2026-114625

Vulnerability Class: SQL Injection (CWE-89)

Impact: Remote attackers can leverage SQL injection to access privileged internal functionality within the orchestrator. Successful exploitation may compromise the confidentiality, integrity, and availability of both the VCO host and the SD-WAN data it manages.

Attack Vector: The vulnerability is remotely exploitable. While specific authentication requirements have not been publicly detailed in the summary, the privileged internal functionality reference suggests attackers can reach backend database queries through exposed web application endpoints or API interfaces.

Why This Matters for Defenders:

VeloCloud Orchestrator maintains persistent connections to SD-WAN edge devices, stores network topology data, configuration templates, and often holds credentials or API keys for integrated network services. An attacker who achieves SQL injection on VCO can potentially:

  • Extract sensitive configuration data, network diagrams, and credentials from the orchestrator database
  • Modify routing policies, firewall rules, or segmentation configurations across the SD-WAN fabric
  • Establish persistence within the orchestrator host itself
  • Use the VCO as a pivot point to access management interfaces of connected edge devices

Exploitation Status: Confirmed active exploitation in the wild. CISA KEV inclusion means federal civilian executive branch agencies are under Binding Operational Directive (BOD) 26-04 obligations, and private sector organizations should treat this with equivalent urgency.

Detection & Response

Given the web application nature of SQL injection attacks against VCO, detection strategies must focus on web server logs, process execution anomalies, and network-level indicators of database manipulation.

SIGMA Detection Rules

The following rules target observable behaviors associated with SQL injection exploitation and post-exploitation activity against web application servers. These assume you are collecting web server access logs, process creation events from the VCO host, and network connection data.

YAML
---
title: VeloCloud Orchestrator SQL Injection Attempt in URI
id: 8a4f2b91-7c3e-4d8a-b9f1-2e6c9d5a3f7b
status: experimental
description: Detects common SQL injection patterns in HTTP request URIs targeting web application servers, including VeloCloud Orchestrator administrative interfaces.
references:
  - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/10/24
tags:
  - attack.initial_access
  - attack.t1190
logsource:
  category: webserver
  product: generic
detection:
  selection:
    cs-uri-query|contains:
      - "' OR '"
      - "' UNION SELECT"
      - "'; DROP TABLE"
      - "'--"
      - "'/*"
      - "admin'--"
      - "' OR 1=1"
      - "' OR '1'='1"
  filter_known_scanner:
    c-ip|startswith:
      - '10.10.10.' # Example: internal scanner subnet
  condition: selection and not filter_known_scanner
falsepositives:
  - Legitimate security scanning tools
  - Web application firewalls in learning mode
level: high
---
title: VeloCloud Orchestrator Process Spawning Shell
id: 3f8c1a92-5e7d-4b9a-a2f6-1d8e4c7b9a3f
status: experimental
description: Detects the VeloCloud Orchestrator Java or web server process spawning unexpected command shells, which may indicate successful SQL injection leading to command execution.
references:
  - https://attack.mitre.org/techniques/T1059/
  - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
author: Security Arsenal
date: 2026/10/24
tags:
  - attack.execution
  - attack.t1059.004
logsource:
  category: process_creation
  product: linux
detection:
  selection_parent:
    ParentImage|endswith:
      - '/java'
      - '/tomcat'
      - '/httpd'
      - '/nginx'
  selection_shell:
    Image|endswith:
      - '/sh'
      - '/bash'
      - '/dash'
      - '/zsh'
      - '/nc'
      - '/netcat'
      - '/python'
      - '/perl'
  condition: selection_parent and selection_shell
falsepositives:
  - Legitimate administrative scripts executed by orchestrator maintenance jobs
  - Monitoring or backup agents invoked by the application
level: critical
---
title: Suspicious Database Connection from Web Server Process
id: 9b2e4f7a-1c8d-4a6b-9e3f-5d7a2c8b4e6f
status: experimental
description: Detects unusual outbound database connections from web server processes that may indicate SQL injection-driven data exfiltration or lateral movement.
references:
  - https://attack.mitre.org/techniques/T1041/
  - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
author: Security Arsenal
date: 2026/10/24
tags:
  - attack.exfiltration
  - attack.t1041
logsource:
  category: network_connection
  product: linux
detection:
  selection_web_process:
    Image|endswith:
      - '/java'
      - '/tomcat'
      - '/httpd'
      - '/nginx'
  selection_db_ports:
    DestinationPort:
      - 3306  # MySQL
      - 5432  # PostgreSQL
      - 1433  # MSSQL
      - 1521  # Oracle
  filter_internal:
    DestinationIp|startswith:
      - '10.'
      - '172.16.'
      - '192.168.'
  condition: selection_web_process and selection_db_ports and not filter_internal
falsepositives:
  - Legitimate database connections to external managed database services (rare in on-prem VCO)
level: medium

KQL Hunt Query (Microsoft Sentinel / Defender)

Use this query in Microsoft Sentinel to hunt for SQL injection patterns against your VeloCloud Orchestrator instance. This assumes you are ingesting web server logs via a Log Analytics agent, CEF, or a custom log connector.

KQL — Microsoft Sentinel / Defender
// Hunt for SQL injection patterns in web requests to VeloCloud Orchestrator
let sqli_patterns = dynamic(["' OR '", "' UNION SELECT", "'; DROP", "'--", "'/*", "admin'--", "' OR 1=1", "' OR '1'='1", "xp_cmdshell", "information_schema"]);
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DeviceProduct contains "VeloCloud" or DeviceProduct contains "Arista" or DestinationHostName contains "orchestrator"
| where RequestURL has_any (sqli_patterns) or RequestQueryString has_any (sqli_patterns)
| extend SQLiIndicator = iff(RequestURL has_any (sqli_patterns), RequestURL, RequestQueryString)
| project TimeGenerated, SourceIP, DestinationIP, DestinationHostName, RequestMethod, RequestURL, SQLiIndicator, RequestProtocol, DeviceAction
| order by TimeGenerated desc

// Correlate with process execution on the VCO host if Syslog/CEF process events are collected
| join kind=leftouter (
    Syslog
    | where TimeGenerated > ago(7d)
    | where Facility == "user" and SeverityLevel == "notice"
    | where ProcessName in ("sh", "bash", "python", "perl", "nc", "netcat")
    | where Computer contains "orchestrator" or Computer contains "vco"
    | project ProcessTime=TimeGenerated, Computer, ProcessName, ProcessCommandLine
) on $left.DestinationHostName == $right.Computer
| extend ProcessExecutionDetected = iff(isnotempty(ProcessName), "YES", "NO")
| where ProcessExecutionDetected == "YES" or SQLiIndicator != ""

Velociraptor VQL Hunt

Use this Velociraptor artifact to hunt for evidence of post-exploitation activity on the VeloCloud Orchestrator host itself. This focuses on process anomalies, unexpected network connections, and recent file modifications that may indicate webshell deployment or database credential theft.

VQL — Velociraptor
-- VeloCloud Orchestrator Post-Exploitation Hunt
-- Targets: suspicious processes, webshell artifacts, and unexpected network connections

LET suspicious_procs = SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(sh|bash|dash|zsh|nc|netcat|python|perl|ruby|php)'
   OR CommandLine =~ '(curl|wget|nc |netcat|bash -i|sh -i|/dev/tcp)'
   OR (Name =~ 'java|tomcat' AND CommandLine =~ '(Runtime|exec|ProcessBuilder)')

LET webserver_connections = SELECT Pid, Name, RemoteAddr, RemotePort, State
FROM netstat()
WHERE Name =~ '(java|tomcat|httpd|nginx)'
  AND RemotePort IN (3306, 5432, 1433, 1521)
  AND RemoteAddr !~ '^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)'

LET recent_web_files = SELECT FullPath, Size, Mtime, Atime, Ctime
FROM glob(globs=['/opt/velocloud/**/*.jsp', '/opt/velocloud/**/*.war', '/var/www/**/*.jsp', '/var/www/**/*.php', '/tmp/*.jsp', '/tmp/*.war'])
WHERE Mtime > now() - 604800  // Last 7 days

SELECT 'Suspicious Process' as IndicatorType, Name as Detail, CommandLine as Context, Pid as PID, CreateTime as Timestamp
FROM suspicious_procs
UNION ALL
SELECT 'Unexpected DB Connection' as IndicatorType, Name as Detail, RemoteAddr + ':' + RemotePort as Context, Pid as PID, State as Timestamp
FROM webserver_connections
UNION ALL
SELECT 'Recent Web File' as IndicatorType, FullPath as Detail, 'Size: ' + Size as Context, NULL as PID, Mtime as Timestamp
FROM recent_web_files
ORDER BY Timestamp DESC

Verification and Hardening Script

Since Arista VeloCloud Orchestrator runs on Linux, use the following Bash script to verify your exposure, check for signs of compromise, and apply immediate hardening measures while awaiting vendor patches.

Bash / Shell
#!/bin/bash
# CVE-2026-114625 VeloCloud Orchestrator Verification and Hardening Script
# Run with root privileges on the VCO host

set -e

REPORT_FILE="/tmp/vco_cve_2026_114625_check_$(date +%Y%m%d_%H%M%S).log"
VCO_PATHS="/opt/velocloud /var/log/velocloud"

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$REPORT_FILE"
}

log "=== CVE-2026-114625 VeloCloud Orchestrator Security Check ==="
log "Report: $REPORT_FILE"
log ""

# 1. Identify VeloCloud Orchestrator version
log "[1] Checking VeloCloud Orchestrator installation..."
if [ -f "/opt/velocloud/version.txt" ]; then
    VCO_VERSION=$(cat /opt/velocloud/version.txt)
    log "    Detected VCO Version: $VCO_VERSION"
    log "    ACTION REQUIRED: Compare against Arista security advisory for patched version"
else
    log "    WARNING: Could not detect version.txt at /opt/velocloud/version.txt"
    log "    Manually verify version via admin UI or Arista support"
fi
log ""

# 2. Check for unexpected child processes of Java/Tomcat
log "[2] Checking for suspicious child processes (possible post-exploitation)..."
JAVA_PIDS=$(pgrep -f "java|tomcat" | tr '\n' ' ')
if [ -n "$JAVA_PIDS" ]; then
    log "    Found Java/Tomcat PIDs: $JAVA_PIDS"
    for pid in $JAVA_PIDS; do
        CHILD_PROCS=$(pgrep -P "$pid" -l 2>/dev/null || true)
        if [ -n "$CHILD_PROCS" ]; then
            log "    ALERT: Child processes of PID $pid:"
            echo "$CHILD_PROCS" | while read -r line; do
                log "      - $line"
            done
            log "    INVESTIGATE: Verify these are legitimate maintenance tasks"
        fi
    done
else
    log "    No Java/Tomcat processes detected. Verify VCO service status."
fi
log ""

# 3. Review recent web server access logs for SQLi patterns
log "[3] Scanning web server logs for SQL injection indicators (last 7 days)..."
LOG_PATHS="/var/log/nginx/access.log /var/log/httpd/access_log /opt/velocloud/logs/access.log"
FOUND_SQLI=0
for logpath in $LOG_PATHS; do
    if [ -f "$logpath" ]; then
        log "    Checking $logpath..."
        SQLI_HITS=$(grep -iE "('|%27).*(or|union|select|drop|insert|update|delete|exec|information_schema|xp_cmdshell)" "$logpath" 2>/dev/null | grep -E "$(date -d '7 days ago' '+%d/%b/%Y')|$(date '+%d/%b/%Y')" | wc -l || echo "0")
        if [ "$SQLI_HITS" -gt 0 ]; then
            log "    ALERT: Found $SQLI_HITS potential SQLi patterns in $logpath"
            log "    Review with: grep -iE \"('|%27).*(or|union|select|drop)\" $logpath | tail -50"
            FOUND_SQLI=1
        else
            log "    No obvious SQLi patterns in recent entries"
        fi
    fi
done
if [ "$FOUND_SQLI" -eq 0 ]; then
    log "    No SQLi indicators found in checked logs"
fi
log ""

# 4. Check for recent file modifications in web directories
log "[4] Checking for recently modified web application files (last 7 days)..."
for basepath in $VCO_PATHS; do
    if [ -d "$basepath" ]; then
        log "    Scanning $basepath..."
        RECENT_FILES=$(find "$basepath" -type f \( -name "*.jsp" -o -name "*.war" -o -name "*.php" -o -name "*.class" \) -mtime -7 2>/dev/null | head -20)
        if [ -n "$RECENT_FILES" ]; then
            log "    ALERT: Recently modified web files detected:"
            echo "$RECENT_FILES" | while read -r file; do
                FILE_DATE=$(stat -c '%y' "$file" 2>/dev/null | cut -d' ' -f1)
                log "      - $file (modified: $FILE_DATE)"
            done
            log "    INVESTIGATE: Correlate with maintenance windows or deployment logs"
        else
            log "    No recently modified web files found"
        fi
    fi
done
log ""

# 5. Check database connections from web server processes
log "[5] Checking for external database connections from web processes..."
if command -v ss >/dev/null 2>&1; then
    EXT_DB_CONN=$(ss -tlnp 2>/dev/null | grep -E "(java|tomcat)" | grep -E ":(3306|5432|1433|1521)" | grep -vE "(127\.0\.0\.1|::1|10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)" || true)
    if [ -n "$EXT_DB_CONN" ]; then
        log "    ALERT: External database connections detected:"
        echo "$EXT_DB_CONN" | while read -r conn; do
            log "      - $conn"
        done
        log "    INVESTIGATE: On-prem VCO should typically use local or internal databases"
    else
        log "    No unexpected external database connections detected"
    fi
else
    log "    'ss' command not available. Install iproute2 package or use netstat."
fi
log ""

# 6. Verify network exposure
log "[6] Checking network exposure of VCO management interfaces..."
if command -v ss >/dev/null 2>&1; then
    log "    Listening services on VCO host:"
    ss -tlnp | grep -E "(java|tomcat|nginx|httpd)" | while read -r line; do
        log "      - $line"
    done
    log ""
    log "    ACTION: Ensure management interfaces are NOT exposed to untrusted networks"
    log "    ACTION: Restrict access to VCO web UI to authorized admin networks only"
else
    log "    Unable to enumerate listening services"
fi
log ""

# 7. Immediate hardening recommendations
log "[7] Immediate hardening actions (manual verification required):"
log ""
log "    A. NETWORK SEGMENTATION:"
log "       - Place VCO behind a firewall restricting access to admin networks only"
log "       - Block outbound database connections from VCO to untrusted networks"
log ""
log "    B. ACCESS CONTROL:"
log "       - Review VCO admin accounts and disable unused accounts"
log "       - Enforce multi-factor authentication where supported"
log "       - Rotate database credentials and API keys if compromise is suspected"
log ""
log "    C. LOGGING:"
log "       - Ensure web server access logs are forwarded to your SIEM"
log "       - Enable database query logging if supported by your VCO version"
log "       - Monitor for the Sigma rules and KQL queries in your detection stack"
log ""
log "    D. VENDOR PATCH:"
log "       - Apply the security update from Arista immediately when available"
log "       - Reference: https://www.arista.com/en/support/security-advisories"
log "       - CISA KEV: https://www.cisa.gov/known-exploited-vulnerabilities-catalog"
log ""

# 8. CISA BOD 26-04 compliance check
log "[8] CISA BOD 26-04 Compliance Deadline:"
log "    CVE-2026-114625 was added to KEV on 2026-10-23"
log "    Federal agencies: Apply mitigations per BOD 26-04 requirements"
log "    Private sector: Treat with equivalent urgency given confirmed active exploitation"
log ""

log "=== Assessment Complete ==="
log "Review the full report at: $REPORT_FILE"
log ""
log "NEXT STEPS:"
log "1. If any ALERT items were identified, isolate the VCO host and initiate IR procedures"
log "2. Contact Arista support for the latest security patch and installation guidance"
log "3. Preserve forensic evidence before making system changes if compromise is suspected"
log "4. Update your vulnerability management system to track CVE-2026-114625 remediation"

Remediation

Immediate Actions (Execute Now):

  1. Apply Vendor Mitigations: Follow Arista's security advisory instructions for CVE-2026-114625. Check the Arista Security Advisories page for the latest patch version and installation guidance. The CISA KEV entry requires applying mitigations in accordance with vendor instructions.

  2. CISA BOD 26-04 Compliance: If you are a federal civilian executive branch agency, you are bound by BOD 26-04 Prioritizing Security Updates Based on Risk. Review the directive and the associated Forensics Triage Requirements referenced in the KEV entry. Private sector organizations should adopt these timelines as best practice.

  3. Network Segmentation: Immediately restrict network access to the VeloCloud Orchestrator management interface. The VCO web UI and API should only be reachable from authorized administrative networks. If your VCO is currently exposed to the internet or broad internal user networks, firewall it off now.

  4. Forensic Triage: If you suspect compromise based on the detection rules above, preserve forensic evidence before applying patches. Capture memory, disk images, and logs in accordance with CISA's Forensics Triage Requirements referenced in BOD 26-04.

  5. Credential Rotation: If SQL injection exploitation is confirmed or strongly suspected, rotate all credentials stored in or managed by the VCO. This includes database passwords, API keys for integrated services, and SD-WAN edge device credentials.

  6. Enhanced Monitoring: Deploy the Sigma rules, KQL queries, and VQL hunts provided above. Ensure web server access logs, process creation events, and network connection data from the VCO host are flowing to your SIEM.

Patch Verification:

After applying the Arista security update, verify the installation:

Bash / Shell
# Verify VCO service is running the updated version
sudo systemctl status velocloud-orchestrator

# Check version against vendor advisory
cat /opt/velocloud/version.txt

# Confirm web interface is accessible and functional
curl -k https://localhost/login

Long-Term Hardening:

  • Web Application Firewall: Deploy a WAF in front of the VCO management interface with SQL injection rule sets enabled. This provides defense-in-depth while you await patches and protects against future injection flaws.

  • Database Activity Monitoring: If your VCO deployment supports it, enable database query logging and alerting. Look for queries containing UNION SELECT, information_schema, or xp_cmdshell patterns.

  • Regular VCO Updates: VeloCloud Orchestrator is a high-value target. Establish a rapid patching cadence for VCO security updates, treating them with the same urgency as perimeter firewall patches.

  • SD-WAN Segmentation: Ensure your SD-WAN architecture enforces strict segmentation between the management plane (VCO), control plane, and data plane. A compromised orchestrator should not automatically grant an attacker access to all edge device management interfaces.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.