Cisco Catalyst SD-WAN Manager CVE-2026-76504: Admin API Auth Bypass Exploited

·

CVE-2026-76504 is a critical authentication bypass in Cisco Catalyst SD-WAN Manager (formerly vManage), the centralized controller that provisions and manages entire SD-WAN fabrics. A remote, unauthenticated attacker who sends a single crafted HTTP request — with a URI-encoded character in the login path — bypasses the authentication rule guarding the API and lands as the admin user with the netadmin role, which permits every operation on the platform.

Cisco rates it CVSS 9.8 CRITICAL and published the advisory on September 30, 2026 after its PSIRT identified active exploitation in the wild during a support case. CISA added it to the Known Exploited Vulnerabilities catalog on October 1, 2026 with a short federal remediation deadline. There is no workaround — patching is the only fix.

This brief breaks down the encoding trick that defeats the auth rule, what admin API access actually grants an attacker across a managed fabric, the on-box log indicators Cisco published, and copy-pasteable KQL and SPL hunt queries for teams shipping SD-WAN Manager logs into a SIEM.

◈ Table of Contents

01 Vulnerability Profile 02 Disclosure & Exploitation Timeline 03 Affected & Fixed Versions 04 Technical Deep Dive — The Encoding Bypass 05 Post-Exploitation Impact 06 Exposure & Attack Surface 07 Compromise Assessment 08 Indicators of Compromise 09 Detection & Hunt Queries 10 MITRE ATT&CK Mapping 11 Mitigation & Hardening 12 Sources & References
🛰️

01 · Vulnerability Profile

CVE record

Catalyst SD-WAN Manager is the single pane of glass for a Cisco SD-WAN deployment: it holds device inventory, templates, policies, certificates and the control-plane relationships to every WAN Edge router in the overlay. A full compromise of the Manager is effectively a compromise of the fabric. The record below is drawn from the NVD entry and Cisco's advisory.

FieldValue
CVE IDCVE-2026-76504
ProductCisco Catalyst SD-WAN Manager (formerly vManage)
Vulnerability classAuthentication bypass via improper URI-encoding handling
CWECWE-177 — Improper Handling of Encoding
CVSS v3.1 base9.8 CRITICAL
CVSS vectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vectorNetwork — single unauthenticated HTTP request, no user interaction
Affected endpointAPI session handler (j_security_check)
Privilege gainedadmin user · netadmin role (all operations)
NVD publishedSeptember 30, 2026
CISA KEVAdded October 1, 2026
Exploitation statusActive in the wild (confirmed by Cisco PSIRT)
WorkaroundNone — upgrade to a fixed release

The CVSS vector is the worst-case profile for an exposed appliance: network-reachable, low complexity, no privileges, no interaction, and full loss of confidentiality, integrity and availability. Treat any internet-facing SD-WAN Manager still on a vulnerable build as presumed-targeted.

🗓️

02 · Disclosure & Exploitation Timeline

Sep–Oct 2026
T1
How this reached KEV in days
dated
  • 1September 2026 — Cisco's Product Security Incident Response Team (PSIRT) identifies active exploitation of the flaw while handling a Technical Assistance Center (TAC) support case.
  • 2September 30, 2026 — Cisco publishes the security advisory and the NVD record goes live; the bug is rated CVSS 9.8 with exploitation already observed.
  • 3October 1, 2026 — CISA adds CVE-2026-76504 to the Known Exploited Vulnerabilities catalog, binding federal agencies to a short remediation deadline under BOD 22-01.
  • 4October 1–3, 2026 — Independent analyses from Rapid7 and Horizon3.ai detail the encoding trick against the j_security_check endpoint, confirming how trivially the auth rule is defeated.

The gap between "vendor advisory" and "KEV listing" here was a single day. For edge and management-plane appliances, the KEV catalog has become a near-real-time exploitation feed — wire it into your vulnerability SLA so network gear jumps the queue automatically.

CVE-2026-76504 is distinct from three earlier 2026 Catalyst SD-WAN fixes — track it on its own, and do not assume a device patched for the spring/summer bugs is covered here.

CVEDisclosedNote
CVE-2026-20182May 2026Earlier Catalyst SD-WAN flaw — separate issue
CVE-2026-20245June 2026Earlier Catalyst SD-WAN flaw — separate issue
CVE-2026-20262June 2026Earlier Catalyst SD-WAN flaw — separate issue
CVE-2026-76504Sept 30, 2026This advisory — URI-encoding auth bypass, actively exploited
📦

03 · Affected & Fixed Versions

release trains

The flaw affects the Manager regardless of configuration — if the software is vulnerable, the device is vulnerable. Cisco published fixed releases per train. Anything older than the 20.9 train must be migrated to a fixed release.

Release trainStatusFirst fixed release
Earlier than 20.9VulnerableMigrate to a fixed release
20.9Vulnerable20.9.10.1
20.12Vulnerable20.12.8.2
20.15Vulnerable20.15.6.1
20.18Vulnerable20.18.4.1
26.1Vulnerable26.1.2.1
26.2Vulnerable (all)26.2.1

Cloud-hosted and on-prem Managers are both affected. In a cluster or disaster-recovery pair, every node runs the same code — patch all members, not just the primary, or the fabric stays reachable through the lagging node.

🔬

04 · Technical Deep Dive — The Encoding Bypass

root cause

The entire bug lives in the mismatch between two components that parse the same URL differently: the authentication rule that decides whether a request needs credentials, and the application servlet that ultimately handles it. This is a classic path-normalisation / parser-differential pattern — the same failure class behind many WAF and gateway bypasses.

D1
The two parsers disagree
root cause

Catalyst SD-WAN Manager uses a Java-style form-authentication flow whose login handler lives at the well-known path j_security_check. An authentication/authorisation rule is meant to govern access to that endpoint. The flaw (CWE-177, improper handling of encoding) is that the rule matches the literal request path, while the back-end servlet URL-decodes the path before dispatching. Feed the two a percent-encoded character and they resolve the request to different strings — so the rule fails to match, and the request sails through as if it were on an unprotected route, while the servlet still routes it to the real login handler.

Encoded request — character %6a decodes to "j"
# The literal path the auth rule inspects does NOT equal "j_security_check"... POST /%6a_security_check HTTP/1.1 Host: sdwan-manager.example.net Content-Type: application/x-www-form-urlencoded # ...but the servlet URL-decodes %6a -> "j" and dispatches to j_security_check, # granting an authenticated API session as the admin user.

%6a is only one example. Cisco and independent researchers note that other encoded characters in the path trigger the same mismatch — do not build detections that key only on the literal string "%6a". Hunt for percent-encoding anywhere in the security_check path.

D2
Why one request is enough
mechanics

Because the bypass targets the authentication step itself, there is no exploit chain, no memory corruption and no second stage. The crafted request is the exploit: once the rule is skipped, the login handler issues a valid session as the built-in admin account. From there the attacker speaks to the Manager's REST API as a fully privileged operator. Low attack complexity in the CVSS vector is literal here — it is a single, deterministic HTTP request.

What makes this class dangerous
  • No credentials, tokens or prior foothold required
  • Deterministic — not a race or a brute-force, it works on the first try
  • Blends with legitimate login traffic because it hits the real auth endpoint
  • Trivially scriptable and scannable at internet scale
D3
The forensic fingerprint it leaves
artifact

The bypass is noisy in the right logs. Because the servlet still processes the decoded request, the Manager records the encoded path and, critically, maps the session to an internal service identity. Cisco's remediation guidance calls out log entries where an encoded j_security_check request is processed for a username beginning with viptela-reserved- — a reserved internal account prefix that should never appear tied to an external login. That pairing (encoded path + reserved user) is the single clearest tell of exploitation.

Representative vmanage-server.log artifact (from Cisco guidance)
# Encoded path mapped to a reserved internal account = strong exploitation signal Request Stored in Map is (/%6a_security_check) for user (viptela-reserved-..)
💥

05 · Post-Exploitation Impact

netadmin = all ops

Cisco has not published the specific actions attackers took after gaining access. What is certain is the capability the bypass confers: the default admin account holds the netadmin role, which permits every operation the platform exposes. Below is the attack chain and the categories of damage an operator with full Manager API access can inflict on a managed fabric.

One unauthenticated request → admin API → fabric-wide control. Post-access actions are capability-based; Cisco has not disclosed observed intrusion detail.
🗝️

Credential & Cert Theft

The Manager stores device templates, API tokens and the certificates that underpin the SD-WAN control plane. Admin API access exposes this configuration repository, handing an attacker the keys to impersonate or re-enrol fabric components.

🧭

Fabric-Wide Config Push

netadmin can author and deploy templates and policies to every WAN Edge router in the overlay. A malicious policy can reroute traffic, open management access, or disable controls across hundreds of branch sites at once.

🚪

Persistence

New administrative accounts, modified RBAC, or tampered templates survive a session logout and can re-establish access even after the original request is blocked — which is why patching alone is not a compromise cleanup.

⛔

Availability Impact

The CVSS vector rates integrity and availability as High for good reason: a hostile operator can push configuration that partitions or bricks the overlay, turning a controller compromise into a WAN-wide outage.

🌐

06 · Exposure & Attack Surface

why it gets hit
E1
Management planes that shouldn't face the internet, do
reality

SD-WAN Managers are meant to be reached by operators and by WAN Edge devices — not by the open internet. In practice, many deployments expose the web/API interface publicly for remote administration, cloud-hosted overlays, or because branch devices call home over untrusted links. Any such instance on a vulnerable build is a one-request compromise. Treat reachability, not just version, as the risk driver: an unpatched Manager behind strict management ACLs is materially safer than a patched-but-exposed one left on a lagging node.

Do not rely on obscurity of the API port. The exploit targets the standard form-auth endpoint on the normal management interface; there is no non-standard path to hide behind.

Inventory exposure the way an attacker would: enumerate every Manager VIP/interface that answers on the management web port from outside your trust boundary, then cross-reference against the fixed-version table. Reachable + vulnerable is your priority-zero list.

ReachabilityBuildPriority
Internet-reachable mgmt interfaceVulnerableP0 — patch now
Internet-reachable mgmt interfaceFixedP1 — verify & harden ACLs
Restricted to mgmt networkVulnerableP1 — patch in change window
Restricted to mgmt networkFixedP3 — monitor
🧰

07 · Compromise Assessment

responder steps

Cisco's remediation document lays out a specific order of operations so you preserve evidence before you change the box. Follow it in sequence — upgrading first can destroy the very logs that prove or disprove compromise.

R1
Preserve evidence, then patch, then triage
runbook
  • 1Collect admin-tech bundles first. Gather an admin-tech from every Manager instance — all cluster members and any DR site — before upgrading, so the pre-patch log state is captured.
  • 2Grep the service-proxy and server logs for encoded j_security_check requests and viptela-reserved- user mappings (queries in Phase 09).
  • 3Upgrade all nodes to the fixed release for their train. There is no workaround, so this is mandatory, not optional.
  • 4Open a Cisco TAC case (reference CVE-2026-76504) and upload the admin-tech bundles so Cisco can scan them for compromise indicators.
  • 5If compromise is confirmed, follow TAC-provided remediation, rotate all credentials and certificates managed by the controller, and audit administrative accounts and templates for unauthorised changes.
  • 6Reconstruct the timeline: correlate the first encoded-request log entry with downstream config-change and account-creation events to scope what the attacker touched.

Patching closes the door but does not evict an attacker who already created accounts or altered templates. A clean upgrade with no post-access review is an incomplete response — assume persistence until the config and RBAC are verified.

🧷

08 · Indicators of Compromise

on-box signals

This vulnerability produces behavioural and log-based indicators rather than fixed network IOCs — Cisco did not publish attacker IPs or hashes, and attackers can source the single request from anywhere. The reliable signals are on the Manager itself.

IndicatorWhereWhat it means
serviceproxy-access.log/var/log/nms/containers/service-proxy/serviceproxy-access.log*Access log of the service proxy; inspect for encoded security_check requests
vmanage-server.log/var/log/nms/vmanage-server.log*Application log; inspect for encoded path mapped to reserved users
%6a_security_checkrequest pathPercent-encoded variant of j_security_check (any encoded char, not just %6a)
viptela-reserved-*username in log mappingReserved internal account tied to an external login = strong exploitation signal
POST .../%XX_security_check 200proxy access logSuccessful (HTTP 200) encoded auth request from an unexpected source IP

The highest-fidelity single indicator is the pairing: an encoded security_check path resolved for a viptela-reserved- account. Legitimate logins never produce that combination.

📡

09 · Detection & Hunt Queries

KQL · SPL · grep · Sigma

If you forward SD-WAN Manager syslog to a SIEM, hunt there; if not, run the on-box grep. Each query is preceded by what it finds. Tune field names to your ingestion pipeline (Syslog vs. CEF vs. custom parser).

Q1
Encoded security_check requests
bypass attempt

Finds any request to the form-auth endpoint that contains percent-encoding in the path — the core signature of the bypass, independent of which character was encoded.

KQL — Microsoft Sentinel (Syslog)
// Encoded variants of j_security_check in ingested SD-WAN Manager logs Syslog | where SyslogMessage has_cs "security_check" | where SyslogMessage matches regex @"%[0-9a-fA-F]{2}_security_check" | project TimeGenerated, HostName, SyslogMessage | sort by TimeGenerated desc
SPL — Splunk
## Same hunt, Splunk syntax index=network sourcetype=cisco:sdwan OR source="*serviceproxy-access.log*" | regex _raw="%[0-9a-fA-F]{2}_security_check" | table _time host src_ip uri_path status | sort -_time
Q2
Reserved-user mapping
high fidelity

Finds the smoking gun — an authentication event mapped to a viptela-reserved- internal account, which should never occur for an external login.

KQL — Microsoft Sentinel
// Encoded path resolved for a reserved internal account Syslog | where SyslogMessage has_cs "viptela-reserved-" | where SyslogMessage has_cs "security_check" | project TimeGenerated, HostName, SyslogMessage
SPL — Splunk
## Reserved account + auth endpoint in one event index=network (source="*vmanage-server.log*" OR sourcetype=cisco:sdwan) "viptela-reserved-" "security_check" | table _time host user uri_path
Q3
Successful encoded auth from external IPs
confirmed access

Finds encoded security_check requests that returned HTTP 200 from a source outside your management network — i.e. a request that likely succeeded in establishing a session.

KQL — Microsoft Sentinel
// Successful encoded auth sourced from outside the mgmt range (adjust CIDR) Syslog | where SyslogMessage matches regex @"%[0-9a-fA-F]{2}_security_check" | where SyslogMessage has "200" | extend src = extract(@"(\d+\.\d+\.\d+\.\d+)", 1, SyslogMessage) | where not(ipv4_is_in_range(src, "10.0.0.0/8")) | project TimeGenerated, HostName, src, SyslogMessage
SPL — Splunk
## 200-status encoded auth, exclude internal mgmt CIDR index=network source="*serviceproxy-access.log*" status=200 | regex _raw="%[0-9a-fA-F]{2}_security_check" | search NOT src_ip=10.0.0.0/8 | table _time host src_ip uri_path status
Q4
On-box log review (no SIEM)
grep

When logs are not centralised, run these directly on each Manager against the paths Cisco specified. The second command surfaces the high-fidelity reserved-user pairing.

bash — on the SD-WAN Manager
admin@vmanage:~$ grep -EiH '%[0-9a-f]{2}_security_check' \ /var/log/nms/containers/service-proxy/serviceproxy-access.log* admin@vmanage:~$ grep -EiH 'security_check.*viptela-reserved-' \ /var/log/nms/vmanage-server.log*

Absence of hits is not proof of safety if logs have rotated or the box was already upgraded. Correlate against the admin-tech bundle captured before patching, and let Cisco TAC scan it.

Q5
Portable Sigma rule
sigma

A generic Sigma rule you can convert to your backend for the encoded-endpoint signature. Keep the condition on the encoding pattern, not a single character.

YAML — Sigma
title: Cisco SD-WAN Manager Encoded Auth Bypass (CVE-2026-76504) status: experimental logsource: product: cisco service: sdwan_manager detection: sel_encoded: message|re: '%[0-9a-fA-F]{2}_security_check' sel_reserved: message|contains: 'viptela-reserved-' condition: sel_encoded or sel_reserved level: high
🎯

10 · MITRE ATT&CK Mapping

capability-based

Cisco did not disclose a full observed intrusion, so the techniques below map the capability the bypass grants and the standard tradecraft against a compromised network-management controller, not confirmed attacker actions.

TacticTechniqueRelevance
Initial AccessT1190 — Exploit Public-Facing ApplicationThe encoded HTTP request against the Manager's API
Defense EvasionT1211 — Exploitation for Defense EvasionEncoding defeats the authentication rule guarding the endpoint
Privilege Escalation / PersistenceT1078.001 — Valid Accounts: Default AccountsLands as the built-in admin account with the netadmin role
Credential AccessT1552 — Unsecured CredentialsConfig repository exposes device templates, tokens, certificates
CollectionT1602.002 — Network Device Configuration DumpAdmin API can export fabric configuration and policy
Lateral Movement / ImpactT1072 — Software Deployment ToolsManager is the deployment plane; rogue templates reach every WAN Edge
ImpactT1565.001 — Data Manipulation: Stored DataTampered policy/config can reroute, open, or partition the overlay
🛡️

11 · Mitigation & Hardening

fix + reduce surface
M1
Patch — the only fix
mandatory

There is no workaround. Upgrade every Manager node to the fixed release for its train (Phase 03), including cluster members and DR sites. For builds older than 20.9, migrate to a fixed release rather than waiting for a backport.

Patch checklist
  • All cluster nodes and DR peers upgraded, not just the primary
  • Admin-tech captured on every node before the upgrade
  • Post-upgrade build verified against the fixed-version table
  • TAC case opened with CVE-2026-76504 for compromise scanning
M2
Shrink the management-plane attack surface
hardening
  • 1Restrict management access to the Manager's web/API interface to a defined set of administrative prefixes with ACLs or a management VRF — do not expose it to the open internet.
  • 2Cloud-hosted customers: review Allowed Inbound Rules under SSP > Overlay Details and tighten them to required source prefixes only.
  • 3Front the interface with a VPN or jump host so administrative access requires a prior authenticated channel.
  • 4Apply the Cisco Catalyst SD-WAN Hardening Guide baseline and review it after every major upgrade.
  • 5Forward Manager logs (serviceproxy-access.log, vmanage-server.log) to your SIEM so the Phase 09 detections run continuously, not just during incident response.

Reachability is the real control. A management plane that only answers to a hardened admin network removes the "unauthenticated, remote" precondition that makes this class of bug catastrophic — and buys you time on the next one.

📚

12 · Sources & References

primary
NVD — CVE-2026-76504 record (CVSS 9.8, CWE-177, affected versions) Cisco — Remediate Catalyst SD-WAN Security Advisory (log paths, admin-tech, TAC steps) CISA — Known Exploited Vulnerabilities Catalog (added October 1, 2026) Rapid7 — Critical Cisco Catalyst SD-WAN Manager API auth bypass exploited in the wild Horizon3.ai — CVE-2026-76504: Cisco SD-WAN auth bypass analysis The Hacker News — Cisco warns of attackers exploiting SD-WAN Manager auth bypass

Is your edge exposed? Feed the log paths and encoded-endpoint signatures above into the CyberHawk IOC Scanner and review your management-plane exposure against our latest advisories on the Threat Intel hub.

Running a SOC? Our incident-response SOPs cover network-device compromise, credential rotation and config-tamper investigation end to end — build the muscle memory before the next KEV listing lands.

◈ Stay Connected

Follow CyberHawk Threat Intel for threat intelligence, deployment guides and hands-on SOC tooling content.

🌐 Website ▶️ YouTube ▶️ YouTube (2) 𝕏 Twitter / X ♪ TikTok ✈️ Telegram
🔍 IOC Scanner 🛠️ Live Tools 📚 Courses 🚨 Threat Intel 📝 Blog 📋 SOPs

"They can't exploit you if you are the Exploit."