CVE-2026-20245

Cisco Catalyst SD-WAN Manager Improper Output Encoding Exploitation

Detects exploitation attempts targeting CVE-2026-20245, an improper encoding or escaping of output vulnerability (CWE-116) in Cisco Catalyst SD-WAN Manager. This vulnerability is actively exploited in the wild (CISA KEV) and may allow attackers to perform privilege escalation or inject malicious content through improperly encoded output. Detection focuses on anomalous authentication patterns, unexpected privilege changes, API abuse, and suspicious management plane activity against SD-WAN Manager instances.

Vulnerability Intelligence

KEV — Known Exploited

Affected Software

Vendor
Cisco
Product
Catalyst SD-WAN Manager

Weakness (CWE)

Timeline

Disclosed
June 9, 2026

CVSS

7.8
High (7.0–8.9)

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Write-up coming soon

What is CVE-2026-20245 Cisco Catalyst SD-WAN Manager Improper Output Encoding Exploitation?

Cisco Catalyst SD-WAN Manager Improper Output Encoding Exploitation (CVE-2026-20245) maps to the Privilege Escalation and Initial Access and Lateral Movement tactics — the adversary is trying to gain higher-level permissions in MITRE ATT&CK.

This page provides production-ready detection logic for Cisco Catalyst SD-WAN Manager Improper Output Encoding Exploitation, covering the data sources and telemetry it touches: Syslog, CommonSecurityLog, DeviceEvents. 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
Privilege Escalation Initial Access Lateral Movement
Microsoft Sentinel / Defender
kusto
let sdwan_mgr_ips = dynamic([]);
union DeviceEvents, CommonSecurityLog, Syslog
| where TimeGenerated >= ago(24h)
| where (
    (DeviceVendor == "Cisco" and DeviceProduct has_any ("SD-WAN", "vManage", "Catalyst SD-WAN Manager"))
    or (Computer has_any ("vmanage", "sdwan-manager", "sdwanmgr"))
    or (SourceSystem == "Syslog" and ProcessName has_any ("vmanage", "sdwan"))
)
| where Message has_any (
    "privilege", "escalat", "unauthorized", "injection", "encoding", "escape",
    "admin", "root", "sudo", "permission denied", "access denied", "forbidden",
    "REST API", "/dataservice/", "HTTP/1"
)
| extend SuspiciousIndicators = case(
    Message has_any ("privilege escalat", "unauthorized privilege"), "PrivilegeEscalation",
    Message has_any ("injection", "encoding error", "escape"), "OutputEncodingAbuse",
    Message has_any ("admin", "root") and Message has "failed", "AuthFailureAdminContext",
    "Other"
)
| where SuspiciousIndicators != "Other"
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), Messages = make_set(Message, 10) by Computer, SuspiciousIndicators, SourceSystem
| where EventCount >= 2
| project-reorder FirstSeen, LastSeen, Computer, SuspiciousIndicators, EventCount, Messages

Hunts for suspicious activity on Cisco SD-WAN Manager nodes — privilege escalation signals, output encoding anomalies, and admin-context auth failures — correlated across Syslog, CommonSecurityLog, and DeviceEvents.

critical severity medium confidence

Data Sources

Syslog CommonSecurityLog DeviceEvents

Required Tables

Syslog CommonSecurityLog DeviceEvents

False Positives

  • Legitimate administrative configuration changes triggering privilege-related log entries
  • Routine SD-WAN Manager software upgrades generating encoding-related log noise
  • Security scanners or vulnerability assessment tools probing the management API
  • Misconfigured monitoring agents producing repeated auth failure messages

Sigma rule & cross-platform mapping

The detection logic for Cisco Catalyst SD-WAN Manager Improper Output Encoding Exploitation (CVE-2026-20245) 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 3 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 1SD-WAN Manager REST API Endpoint Enumeration and Auth Probe

    Expected signal: Web server access logs and SD-WAN Manager audit logs should record multiple 401/403 responses to /dataservice/ endpoints from the probe source IP within a short time window

  2. Test 2Simulate Output Encoding Bypass via Crafted API Payload

    Expected signal: SD-WAN Manager application logs should record the API request with the encoded payload; web access logs capture the POST to /dataservice/users with unexpected encoded characters in request body

  3. Test 3Post-Exploitation Privilege Escalation Simulation via vManage Admin API

    Expected signal: SD-WAN Manager audit logs should record the group membership change attempt; if successful, an entry will appear under Administration > Audit Log showing the privilege modification with source IP and timestamp


Response Playbook

Triage

  1. Identify all Cisco Catalyst SD-WAN Manager instances in the environment — confirm software versions and patch status against the Cisco advisory at https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-sdwan-privesc-4uxFrdzx
  2. Review SD-WAN Manager audit logs (Administration > Audit Log) for unexpected privilege changes, new admin account creation, or API calls originating from unfamiliar source IPs within the last 72 hours
  3. Correlate alert source IPs against threat intelligence feeds and known management IP allowlists — flag any external or unexpected source IPs that accessed /dataservice/ REST endpoints
  4. Check for unauthorized user accounts or role modifications in SD-WAN Manager (Administration > Manage Users) that may indicate post-exploitation privilege persistence

Containment

  1. If active exploitation is confirmed, immediately restrict access to the SD-WAN Manager management plane — enforce IP allowlisting on the management interface and block external access at the perimeter firewall until the patch is applied
  2. Rotate all SD-WAN Manager administrative credentials and invalidate active sessions; revoke and reissue API tokens for any automated integrations accessing the management API

Evidence Collection

  1. Export full SD-WAN Manager audit logs (Administration > Audit Log) covering the period 72 hours before the first alert through present — preserve as tamper-evident archive
  2. Capture SD-WAN Manager application logs from /var/log/nms/ on the vManage host, including nm_server.log, vdaemon.log, and any core dump files generated around the time of suspicious activity

Escalation Criteria

  • ! Escalate immediately if any new administrative accounts were created or existing admin privileges were elevated without a corresponding change-management ticket — this indicates likely successful exploitation
  • ! Escalate if SD-WAN Manager has been used to push unauthorized configuration changes to managed SD-WAN edge devices, as this would indicate lateral movement from the management plane to the data plane

Investigation Guide

Forensic Artifacts

  • > SD-WAN Manager audit log entries (Administration > Audit Log) showing privilege changes, user creation, or unusual API activity
  • > Web server access logs showing repeated 401/403 responses to /dataservice/ REST endpoints from unexpected source IPs, followed by successful 200 responses indicating successful bypass
  • > vManage application logs in /var/log/nms/ containing Java exceptions, encoding errors, or stack traces that correlate with exploitation timing

Tuning Guidance

Reduce false positives by building and maintaining a dynamic allowlist of known management IP addresses (NOC, SIEM, orchestration platforms) and excluding these from alerting. Set the failure threshold (currently >= 2 events) higher (>= 5) in environments with noisy automated tooling. If the SD-WAN Manager REST API is heavily used by automation, filter on source IPs not in the known automation inventory. For the CrowdStrike rule, exclude known software update processes and Cisco-signed binaries from shell spawn detection. Tune upward to high confidence once the environment's baseline API error rate is established.


Hunting Queries

Hunts for the authentication bypass pattern associated with output encoding exploitation — source IPs that first received repeated 4xx errors on SD-WAN Manager API endpoints and then subsequently received 200 OK responses, suggesting a successful bypass after initial failures

Hunting — KQL
kql
CommonSecurityLog
| where TimeGenerated >= ago(7d)
| where DeviceVendor == "Cisco" and DeviceProduct has_any ("SD-WAN", "vManage")
| where RequestURL has "/dataservice/"
| where EventOutcome in ("403", "401", "500")
| summarize FailureCount = count(), UniqueURLs = dcount(RequestURL), FirstFailure = min(TimeGenerated), LastFailure = max(TimeGenerated) by SourceIP, DestinationIP
| where FailureCount >= 5
| join kind=inner (
    CommonSecurityLog
    | where TimeGenerated >= ago(7d)
    | where DeviceVendor == "Cisco" and DeviceProduct has_any ("SD-WAN", "vManage")
    | where RequestURL has "/dataservice/"
    | where EventOutcome == "200"
    | summarize SuccessCount = count() by SourceIP
) on SourceIP
| project FirstFailure, LastFailure, SourceIP, DestinationIP, FailureCount, SuccessCount, UniqueURLs
| order by FailureCount desc
Hunting — SPL
spl
index=network_security sourcetype="cisco:sdwan" "/dataservice/"
| stats count(eval(status>=400)) as failures, count(eval(status=200)) as successes by src_ip, dest_ip
| where failures >= 5 AND successes >= 1
| eval failure_then_success="Possible auth bypass — investigate"
| table src_ip, dest_ip, failures, successes, failure_then_success

Atomic Red Team Tests

Test 1 SD-WAN Manager REST API Endpoint Enumeration and Auth Probe
linux

Simulates initial reconnaissance and authentication probing against a Cisco Catalyst SD-WAN Manager REST API, consistent with early-stage CVE-2026-20245 exploitation. Tests detection of repeated 401/403 responses on /dataservice/ endpoints from an unexpected source.

Command

bash
TARGET_IP="192.168.100.10"; TARGET_PORT="8443";
for endpoint in "/dataservice/client/token" "/dataservice/users" "/dataservice/admin/user" "/dataservice/system/information"; do
  echo "[*] Probing: https://${TARGET_IP}:${TARGET_PORT}${endpoint}";
  curl -sk -o /dev/null -w "%{http_code} %{url_effective}\n" \
    -H 'Content-Type: application/json' \
    -H 'X-XSRF-TOKEN: ' \
    "https://${TARGET_IP}:${TARGET_PORT}${endpoint}";
  sleep 1;
done

Cleanup

bash
No cleanup required — read-only HTTP probes against lab target only

Expected Telemetry

Web server access logs and SD-WAN Manager audit logs should record multiple 401/403 responses to /dataservice/ endpoints from the probe source IP within a short time window

Expected Detection

KQL, SPL, and QRadar queries should fire on repeated API authentication failures from the probe source IP against SD-WAN Manager endpoints

Test 2 Simulate Output Encoding Bypass via Crafted API Payload
linux

Sends a crafted HTTP request to the SD-WAN Manager REST API with specially encoded characters in parameter values to test for CWE-116 output encoding deficiencies. Lab environment only against an unpatched vManage instance.

Command

bash
TARGET_IP="192.168.100.10"; TARGET_PORT="8443";
TOKEN=$(curl -sk -X POST "https://${TARGET_IP}:${TARGET_PORT}/dataservice/client/token" \
  -H 'Content-Type: application/json' \
  -d '{"j_username":"admin","j_password":"admin"}' | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('token',''))" 2>/dev/null);
echo "[*] Attempting crafted payload with encoded characters";
curl -sk -X POST "https://${TARGET_IP}:${TARGET_PORT}/dataservice/users" \
  -H 'Content-Type: application/json' \
  -H "X-XSRF-TOKEN: ${TOKEN}" \
  -d '{"userName":"test%00admin","password":"Test@1234","group":["basic"],"description":"test%3Bescaped"}' \
  -w "\nHTTP Status: %{http_code}\n"

Cleanup

bash
Log in to SD-WAN Manager admin console and remove any test user accounts created during the test; review audit log to confirm no unintended privilege changes occurred

Expected Telemetry

SD-WAN Manager application logs should record the API request with the encoded payload; web access logs capture the POST to /dataservice/users with unexpected encoded characters in request body

Expected Detection

Log-based detections should capture the API call; if the encoded payload bypasses validation and creates a user, audit log detections should fire on unexpected user creation event

Test 3 Post-Exploitation Privilege Escalation Simulation via vManage Admin API
linux

Simulates post-exploitation privilege escalation by attempting to modify an existing low-privilege user account to add admin group membership via the SD-WAN Manager REST API, consistent with CVE-2026-20245 privilege escalation impact.

Command

bash
TARGET_IP="192.168.100.10"; TARGET_PORT="8443"; LOW_PRIV_USER="testoperator";
TOKEN=$(curl -sk -X POST "https://${TARGET_IP}:${TARGET_PORT}/dataservice/client/token" \
  -H 'Content-Type: application/json' \
  -d '{"j_username":"testoperator","j_password":"Operator@1234"}' | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('token',''))" 2>/dev/null);
echo "[*] Attempting privilege escalation via group membership change";
curl -sk -X PUT "https://${TARGET_IP}:${TARGET_PORT}/dataservice/admin/user/${LOW_PRIV_USER}/group" \
  -H 'Content-Type: application/json' \
  -H "X-XSRF-TOKEN: ${TOKEN}" \
  -d '["netadmin"]' \
  -w "\nHTTP Status: %{http_code}\n";
echo "[*] Checking current group membership";
curl -sk "https://${TARGET_IP}:${TARGET_PORT}/dataservice/admin/user/${LOW_PRIV_USER}" \
  -H "X-XSRF-TOKEN: ${TOKEN}" | python3 -m json.tool 2>/dev/null

Cleanup

bash
Restore the test user account to its original low-privilege group membership via SD-WAN Manager admin console; verify no persistent backdoor accounts were created

Expected Telemetry

SD-WAN Manager audit logs should record the group membership change attempt; if successful, an entry will appear under Administration > Audit Log showing the privilege modification with source IP and timestamp

Expected Detection

Playbook escalation criteria should trigger — any successful privilege elevation not matching a change-management ticket warrants immediate escalation; SIEM detections on SD-WAN Manager audit log ingestion should alert on group membership changes

Related Detections