CVE-2026-16812

Arista VeloCloud Orchestrator On-Prem OS Command Injection (CVE-2026-16812)

Detects exploitation attempts and post-exploitation indicators of CVE-2026-16812, an OS command injection vulnerability (CWE-78) in Arista VeloCloud Orchestrator On-Prem, actively exploited in the wild and listed on CISA KEV. Attackers send crafted HTTP requests to the Orchestrator management application that result in arbitrary OS command execution on the underlying host, typically leading to shell spawning, reverse shell callbacks, credential harvesting, or webshell deployment.

Vulnerability Intelligence

KEV — Known Exploited

What is CVE-2026-16812 Arista VeloCloud Orchestrator On-Prem OS Command Injection (CVE-2026-16812)?

Arista VeloCloud Orchestrator On-Prem OS Command Injection (CVE-2026-16812) (CVE-2026-16812) maps to the Initial Access and Execution and Lateral Movement tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for Arista VeloCloud Orchestrator On-Prem OS Command Injection (CVE-2026-16812), covering the data sources and telemetry it touches: CommonSecurityLog, VMConnection, Syslog. The queries below are rated critical severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Execution Lateral Movement
Microsoft Sentinel / Defender
kusto
let SuspiciousTokens = dynamic(['; ','&&','|','$(','`','wget ','curl ','/bin/sh','/bin/bash','base64 -d','python -c','nc -e','chmod +x']);
union isfuzzy=true
  (CommonSecurityLog
   | where DeviceVendor has 'Arista' or DeviceProduct has 'VeloCloud'
   | where RequestURL has_any ('/portal', '/vco', '/velocloud', '/api')
   | extend DecodedUrl = url_decode(RequestURL)
   | where DecodedUrl has_any (SuspiciousTokens)),
  (VMConnection
   | where ProcessName has_any ('sh','bash','python','curl','wget','nc')
   | where ParentProcessName has_any ('java','node','tomcat','httpd','nginx'))
| project TimeGenerated, DeviceVendor, SourceIP, DestinationIP, RequestURL, ProcessName, ParentProcessName
| sort by TimeGenerated desc

Detects HTTP requests to Arista VeloCloud Orchestrator management endpoints containing shell metacharacters or command-injection payload tokens, and correlates with unexpected child processes spawned from the Orchestrator's web application service (Java/Tomcat).

critical severity medium confidence

Data Sources

CommonSecurityLog VMConnection Syslog

Required Tables

CommonSecurityLog VMConnection

False Positives

  • Legitimate administrative scripts uploading configuration via automation using pipe or ampersand characters in benign contexts
  • Vulnerability scanners intentionally sending injection test payloads without malicious follow-up
  • Third-party network monitoring appliances proxying requests through the same reverse proxy path patterns

Sigma rule & cross-platform mapping

The detection logic for Arista VeloCloud Orchestrator On-Prem OS Command Injection (CVE-2026-16812) (CVE-2026-16812) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Simulate command injection payload via crafted HTTP request

    Expected signal: Web/proxy access log entry showing the crafted URI with embedded semicolon and 'id' command token.

  2. Test 2Spawn shell process from simulated web application parent

    Expected signal: Process creation event showing 'sh' or 'bash' with parent process name resembling 'java'.

  3. Test 3Simulate outbound tool download via curl/wget

    Expected signal: Process execution log for curl/wget plus outbound network connection to the lab test server.

  4. Test 4Drop and remove a test webshell-like file

    Expected signal: File creation and deletion event under the simulated web application directory captured by EDR/FIM.


Response Playbook

Triage

  1. Confirm the affected VeloCloud Orchestrator On-Prem instance's version against Arista's advisory 24364-security-advisory-0144 and determine if it is internet-exposed.
  2. Review web/proxy access logs for requests to Orchestrator management paths (/portal, /vco, /velocloud, /api) containing shell metacharacters or command tokens in the timeframe surrounding the alert.
  3. Inspect the Orchestrator application server's process tree for unexpected child processes (sh, bash, curl, wget, python, nc) spawned from the Java/Tomcat web service.
  4. Check for newly created or modified files under the Orchestrator web application directories that may indicate a webshell was dropped.

Containment

  1. If internet-exposed and unpatched, immediately restrict inbound access to the Orchestrator management interface via firewall/ACL to trusted management IPs only, or take it offline.
  2. Isolate the affected Orchestrator host from the network (retaining forensic access) if active command execution or outbound C2 traffic is confirmed.
  3. Rotate all credentials and API tokens stored on or used to manage the Orchestrator instance, including edge device enrollment tokens.

Evidence Collection

  1. Preserve web server/proxy access and error logs, Orchestrator application logs, and system audit logs (auditd/EDR) covering the suspected exploitation window.
  2. Capture a forensic image or memory snapshot of the Orchestrator host prior to remediation if compromise is confirmed or suspected.
  3. Collect any dropped files, webshells, or scheduled tasks/cron entries found on the host for malware analysis.

Escalation Criteria

  • ! Escalate to incident response if command execution is confirmed on the Orchestrator host, given its central management role over SD-WAN edge devices.
  • ! Escalate immediately if evidence shows lateral movement from the Orchestrator into managed edge devices or the broader corporate network.
  • ! Escalate if the instance is confirmed internet-facing and unpatched, given this CVE is listed on CISA KEV and subject to federal remediation deadlines under BOD 26-04.

Investigation Guide

Forensic Artifacts

  • > Web/proxy access logs showing requests to /portal, /vco, /velocloud, or /api paths with embedded shell metacharacters
  • > Process execution logs (auditd, EDR) showing shell interpreters spawned as children of the Orchestrator's Java/Tomcat process
  • > Newly created files, cron jobs, or systemd units on the Orchestrator host indicating persistence

Tuning Guidance

Baseline legitimate administrative and automation traffic to the Orchestrator's management API paths before enabling this rule in blocking/high-severity alerting mode, since some configuration workflows may legitimately include special characters in query strings. Narrow matching to combinations of injection tokens plus known malicious command substrings (wget/curl/base64 -d/nc -e) rather than single metacharacters alone to reduce false positives, and prioritize the process-correlation detections (EQL/CQL) over URL-pattern-only detections for higher-confidence alerting.


Hunting Queries

Broader retrospective hunt across the last 30-90 days for any historical requests to the Orchestrator matching command injection indicators, to identify prior undetected exploitation attempts.

Hunting — KQL
kql
CommonSecurityLog
| where DeviceVendor has 'Arista' or DeviceProduct has 'VeloCloud'
| where RequestURL has_any ('wget','curl','base64','/bin/sh')
| summarize count() by SourceIP, RequestURL, bin(TimeGenerated, 1h)
Hunting — SPL
spl
index=network sourcetype=arista_velocloud OR sourcetype=proxy
| search uri_path="*wget*" OR uri_path="*curl*" OR uri_path="*base64*" OR uri_path="*/bin/sh*"
| stats count by src_ip, uri_path, _time

Atomic Red Team Tests

Test 1 Simulate command injection payload via crafted HTTP request
linux

Sends a crafted HTTP GET request containing shell metacharacters to a lab Orchestrator management endpoint to validate detection of injection attempts.

Command

bash
curl -s -k 'https://lab-orchestrator.local/portal/rest/test?cmd=;id' -H 'User-Agent: atomic-test'

Cleanup

bash
No persistent changes made; clear test entries from proxy/access logs if log retention testing requires a clean baseline.

Expected Telemetry

Web/proxy access log entry showing the crafted URI with embedded semicolon and 'id' command token.

Expected Detection

KQL/SPL/Chronicle rules alert on the request URI containing shell metacharacters directed at the Orchestrator management path.

Test 2 Spawn shell process from simulated web application parent
linux

Simulates a shell process being spawned as a child of a Java/Tomcat-like parent process to emulate post-exploitation command execution on the Orchestrator host.

Command

bash
bash -c 'exec -a java bash -c "/bin/sh -c id"'

Cleanup

bash
No files or persistence created; terminate any residual test shell processes.

Expected Telemetry

Process creation event showing 'sh' or 'bash' with parent process name resembling 'java'.

Expected Detection

Elastic EQL sequence rule and CrowdStrike CQL query alert on shell interpreter spawned from a Java-named parent process.

Test 3 Simulate outbound tool download via curl/wget
linux

Executes a curl/wget download to a benign lab-controlled endpoint to emulate post-exploitation ingress tool transfer behavior following exploitation.

Command

bash
curl -s -o /tmp/atomic_test_payload http://lab-test-server.local/benign_payload.txt && rm -f /tmp/atomic_test_payload

Cleanup

bash
Command self-removes the downloaded test file; verify /tmp/atomic_test_payload no longer exists.

Expected Telemetry

Process execution log for curl/wget plus outbound network connection to the lab test server.

Expected Detection

CrowdStrike CQL join query and Elastic EQL correlate the process execution with the outbound network connection.

Test 4 Drop and remove a test webshell-like file
linux

Creates and immediately removes a test file in a web-accessible directory on a lab Orchestrator instance to validate file-creation monitoring for webshell persistence.

Command

bash
touch /tmp/lab_webapp_root/test_webshell.jsp && sleep 2 && rm -f /tmp/lab_webapp_root/test_webshell.jsp

Cleanup

bash
File is removed by the command itself; confirm no residual file remains in the test web application directory.

Expected Telemetry

File creation and deletion event under the simulated web application directory captured by EDR/FIM.

Expected Detection

SIEM file integrity monitoring alert or EDR file-creation rule flags the new file in the web application root as a potential webshell.

Related Detections