← Blog
Cisco SD-WANCVE-2026-76504CISA KEVAuth Bypass

Cisco Catalyst SD-WAN Manager CVE-2026-76504: one encoded request to the admin API

Cisco Catalyst SD-WAN Manager CVE-2026-76504, CVSS 9.8, is an API auth bypass via URL encoding — exploited in the wild. Fixed builds, IOCs, remediation.

Zero Hunt Research··9 min read

On 30 September Cisco published advisory cisco-sa-sdwan-webauth-xr8beuuU for CVE-2026-76504, a CVSS 9.8 authentication bypass in Cisco Catalyst SD-WAN Manager — the platform formerly called vManage, the single console that pushes policy, configuration and software to every edge router in an SD-WAN fabric. The same advisory confirmed the part that turns a patch note into an emergency: "In September 2026, the Cisco PSIRT became aware of active exploitation of this vulnerability." CISA added it to the Known Exploited Vulnerabilities catalog the same day with a three-day federal deadline. There is no workaround. An unauthenticated attacker who can reach the web interface sends one request with a hex-encoded character in the path and lands with admin-level API access to the box that controls your entire wide-area network.

At a glance

CVE CVE-2026-76504
Product / affected versions Cisco Catalyst SD-WAN Manager (formerly vManage); releases before the fixed builds below · earlier than 20.9 must migrate
Fixed in 20.9.10.1 · 20.12.8.2 · 20.15.6.1 · 20.18.4.1 · 26.1.2.1 · 26.2.1 (Cloud 20.15.605); advisory cisco-sa-sdwan-webauth-xr8beuuU, 2026-09-30
CVSS 9.8 Critical · CVSS 3.1 · scored by Cisco · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Exploited in the wild Yes — Cisco PSIRT aware of active exploitation in September 2026
CISA KEV Added 2026-09-30; federal due date 2026-10-03 (BOD 26-04, forensic triage required)
Official advisory cisco-sa-sdwan-webauth-xr8beuuU

What CVE-2026-76504 actually breaks

The flaw is classified CWE-177, improper handling of encoding. SD-WAN Manager enforces an authentication rule in front of its web application — requests to protected paths are supposed to be challenged before they reach the servlet that processes a login. The bug is that the component deciding whether a request needs authentication and the component that eventually handles it do not agree on what the URL says. Percent-encode a character the auth rule is matching on — %6a instead of a literal j, for example — and the request slips past the rule as something it does not recognize, then gets decoded back to the real path by the layer behind it. The authentication check never fires. The request arrives at the j_security_check endpoint already treated as a privileged session.

Per Rapid7's analysis and Cisco's own indicators, exploitation leaves a recognizable shape in two logs:

  • POST requests to j_security_check carrying URL-encoded characters such as %6a, from IP addresses you do not recognize.
  • Activity tied to internal service accounts whose names begin with viptela-reserved- — reserved identities a normal operator never logs in as.

Both appear in serviceproxy-access.log and vmanage-server.log. The attack metrics are the worst case: network vector, low complexity, no privileges, no user interaction, full confidentiality-integrity-availability impact — hence the 9.8. Cisco scored it; NVD's record carries the same vector string, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Why an SD-WAN Manager compromise is worse than one more edge CVE

It is tempting to file this with the week's other edge-appliance bulletins and move on. That misreads what SD-WAN Manager is. A compromised VPN concentrator or load balancer is a foothold in front of your estate. SD-WAN Manager is the thing that programs the estate. It holds the certificates that enrol edge routers, it pushes device templates and policy, and it can stage and deploy software images to every managed node. Admin on the manager is not a seat at the edge — it is the deployment system for the whole fabric.

"We'll treat it like the other appliance CVEs — isolate the box, patch, move on." "The other boxes carry traffic. This one configures the boxes that carry traffic. If an attacker had admin on it, assume every managed edge got whatever configuration they wanted pushed."

That is the difference that matters for scoping. A rooted manager can rewrite routing and policy across sites, enrol a rogue edge, disable or redirect inspection, and do it through the legitimate management channel so the changes look like ordinary operations. In MITRE ATT&CK terms the manager is a T1072 (Software Deployment Tools) surface — exactly the kind of trusted distribution point adversaries prize, because one compromise fans out to everything it manages. Cisco's SD-WAN management plane is also a repeat target: this is a distinct bug from the CVE-2026-20182 downgrade-and-revert chain earlier this year, and it lands days after a near-identical auth bypass in Arista's VeloCloud orchestrator. The control plane is where the attention is.

A recurring class: auth rules that disagree with the backend about your URL

Strip the vendor label and CVE-2026-76504 is a textbook instance of a bug class that keeps shipping: a front-door authentication or routing rule and the back-end handler normalize or decode the request path differently, so a crafted encoding means one path to the gatekeeper and another to the component that acts on it. The pattern is everywhere a proxy, middleware or auth filter sits in front of an application:

Product CVE The mismatch
Apache Solr CVE-2024-45216 A fake "ending" appended to any API URL path bypassed the PKI authentication plugin
Traefik CVE-2025-66490 Path-normalization bypass (CWE-436) let requests dodge router and middleware rules
Apache Shiro CVE-2020-13933 A specially crafted request path bypassed the authentication filter

The defensive takeaway generalizes beyond Cisco, and it is the reason this section exists before the fix list: authorization must act on the fully decoded and canonicalized path the handler will actually use, not on the raw string as it arrived. Any design where a prefix-matching auth rule and a decoding back-end can see two different URLs is one encoding trick away from this outcome. When you evaluate an appliance, treat "the auth layer is a separate component from the app" as a question to test, not a reassurance.

Remediation

Cisco offers no workaround, and the KEV entry requires forensic triage — treat any internet-reachable SD-WAN Manager as presumed-targeted and work the steps in order. Evidence capture comes before the upgrade.

1. Am I affected?

  • Check your SD-WAN Manager release. Every build before the fixed versions below is vulnerable; releases earlier than 20.9 receive no fix and must be migrated.
  • Determine whether the manager's web interface (TCP 443 / 8443) is reachable from anywhere it does not strictly need to be — the internet, a user VLAN, a guest segment. The bug needs no credentials and no feature flag; reachability is the whole precondition.
  • Inventory who can reach it today, not who the network diagram says can reach it.

2. Patch — exact fixed releases (from cisco-sa-sdwan-webauth-xr8beuuU)

Release train First fixed release
Earlier than 20.9 Migrate to a fixed release (no fix)
20.9 20.9.10.1
20.12 20.12.8.2
20.15 20.15.6.1
20.18 20.18.4.1
26.1 26.1.2.1
26.2 26.2.1
Cloud-hosted 20.15.605

Do not apply the upgrade before you capture evidence in step 4 — the forensic triage the KEV listing requires depends on logs the upgrade may roll over.

3. Can't patch this hour? Compensating controls

  • Remove the management interface from the internet immediately — Cisco's own interim guidance — and restrict it to a dedicated management network. SD-WAN Manager should never have been internet-facing.
  • Put an upstream reverse proxy or WAF in front that rejects ambiguous or double-encoded characters in the path and refuses requests to j_security_check from untrusted sources. Treat this as a speed bump for the specific encoding vector, not a fix — there is no true workaround.
  • Rate-limit and alert on authentication endpoints so a bypass attempt is at least noisy.

4. Hunt for compromise (do this before you upgrade)

  • Preserve state first: serviceproxy-access.log, vmanage-server.log, a configuration snapshot and a technical support bundle. Capture them off the box.
  • Grep the access logs for POSTs to j_security_check containing percent-encoded characters (e.g. %6a) from unfamiliar IPs, and for any activity under accounts named viptela-reserved- (T1190 initial access via the public-facing app, T1078 use of valid/reserved accounts with no preceding login).
  • Diff current device templates, policies and the enrolled-edge list against a known-good baseline — a rooted manager's most valuable action is pushing to the fabric (T1072 software deployment tools). Look for new or modified templates, unexpected edge enrolments, and configuration changes with no change ticket.
  • Check for log clearing and for outbound connections from the manager to never-before-seen destinations (T1070 indicator removal).

5. Eradicate + verify

  • If you find any indicator, assume full compromise of the manager and rebuild from a known-good image rather than cleaning in place. A box that deploys to your whole fabric is not one to trust after it has been rooted.
  • Rotate everything the manager holds: the certificates and keys used to enrol and authenticate edge devices, administrative and API credentials, and any integration secrets. Re-validate the configuration actually running on each edge against your intended baseline, not against what the manager now reports.
  • Invalidate active sessions and force re-authentication.
  • After patching, re-verify with an independent exploitation test — a manual pentest or an automated penetration test — that the encoding bypass no longer reaches j_security_check on your build, rather than trusting that the version string changed.

Where an autonomous red team changes this specific problem

Look at what the fixed version string cannot tell you. It cannot tell you whether an attacker's encoded request already reached the authentication endpoint on your specific build and topology, whether the manager was exposed to a segment it should not have been, or whether the patch actually closed the encoding ambiguity on your box rather than only bumping the number. CVSS 9.8 scores the bug in the abstract; it says nothing about your manager. And during the exploitation window there was no public proof-of-concept to test with — the attacks were happening precisely because a working technique lived only in the attacker's hands.

That gap is where an autonomous AI red team that runs on-premise on its own private models earns its place. Zero Hunt's 10-agent swarm — Recon, Exploit, Web, Pivot and the rest — writes a per-target probe with a local LLM instead of reaching for a public PoC that does not exist yet, backtests it in the AI Gym before it touches production, and because campaigns are change-triggered, a newly exposed management interface draws a full campaign within the hour. After you patch, it re-runs the proof to answer the one question the build number cannot: did the fix hold on this manager, from the segment an attacker would actually start from. Every finding is Ed25519-signed and hash-chained at write time, so "we tested this release" is a record, not a recollection.

The detection half follows from what makes this bug dangerous: once an attacker has admin on the manager, the manager's own logs are an adversary-authored document, and the malicious configuration pushes to the fabric ride the legitimate management channel. The box that recorded the intrusion is the box the intruder controls — so the wire is the only honest witness. Zero Hunt's AI Traffic Analysis model, four inference heads trained on billions of PCAP sequences and running on the appliance GPU with no data leaving the site, reads the post-exploitation beacon to a never-seen ASN and the out-of-pattern management traffic to edges while it happens, not in the next morning's SIEM digest.

Because SD-WAN carries regulated traffic between sites, a compromised manager is a NIS2 Article 23 and DORA reporting event on a clock that starts when you become aware — and the supervisor will test your claimed awareness date against your own logs. Continuous mapping of every scan, finding and remediation across the 34 frameworks, each record signed at write time and reports ECDSA-signed, turns "prove you were testing this interface and would have seen the intrusion" into a signed bundle that predates the question. The annual pentest cannot make that claim; mapping NIS2's testing duty to continuous, change-triggered validation can. Talk to us about testing your SD-WAN control plane on the attacker's schedule instead of the auditor's.

Is this exploitable in your environment?

Zero Hunt answers that on your own network: an autonomous AI red team on an on-premise appliance, running on private AI, black-box or gray-box, with a human approving every step that matters. Proof of what is exploitable, the fix, and signed evidence — no data leaves your perimeter.