Skip to main content
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

Authentication Bypass in Cisco Catalyst SD-WAN Controller and Manager Peering Authentication

IdentifiersCVE-2026-20127CWE-287· Improper Authentication

CVE-2026-20127 is a critical authentication bypass vulnerability affecting Cisco Catalyst SD-WAN Controller (formerly SD-WAN vSmart) and Cisco Catalyst SD-WAN Manager (formerly SD-WAN vManage). According to the provided content, the flaw exists because the peering authentication mechanism does not work properly. A remote, unauthenticated attacker can exploit the issue by sending crafted requests to an affected system. Successful exploitation allows the attacker to bypass authentication and log in to an affected Cisco Catalyst SD-WAN Controller as an internal, high-privileged, non-root user account. From that account, the attacker can access NETCONF and interact with SD-WAN control-plane functionality, enabling unauthorized manipulation of SD-WAN fabric configuration.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation gives an unauthenticated remote attacker administrative-level access on the affected SD-WAN infrastructure as a high-privileged internal non-root account. With that access, the attacker can use NETCONF to manipulate SD-WAN fabric configuration, create or maintain rogue peer relationships, alter controller-managed network behavior, and potentially enable broader compromise of the SD-WAN environment. The content also indicates this vulnerability has been exploited in zero-day attacks since at least 2023.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, reduce exposure of SD-WAN management and control-plane interfaces to only authorized networks and dedicated administrative segments, remove direct internet exposure where feasible, and monitor for unauthorized peering events and suspicious authentication activity. Review logs for anomalous access involving privileged internal accounts and investigate unexpected SD-WAN configuration changes. These measures are compensating controls only; the content does not indicate a complete workaround.

Remediation

Patch, then assume compromise.

Apply Cisco's fixed software releases for CVE-2026-20127 as referenced in Cisco security advisories. The provided content indicates Cisco addressed this vulnerability on February 25, 2026. Organizations should upgrade affected Cisco Catalyst SD-WAN Controller and Manager deployments to the vendor-recommended fixed versions and follow Cisco's upgrade guidance for their release train.
PUBLIC EXPLOITS

Exploits

5 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (5 hidden).

VALID 5 / 10 TOTALView more in app
CVE-2026-20127MaturityPoCVerified exploit

Repository implements a Ruby-based exploit/PoC for CVE-2026-20127 affecting Cisco Catalyst SD-WAN Controller (vSmart) vdaemon DTLS control-plane authentication. The core bug is a trust of an attacker-controlled verify_status byte in the server handler vbond_proc_challenge_ack_ack() for CHALLENGE_ACK_ACK (msg_type=10), combined with an authentication-gate exemption for msg_type=10. The exploit establishes a DTLS 1.2 session to the target (default UDP/12346) using a self-signed certificate (generated or user-supplied), receives a CHALLENGE, then immediately sends a forged CHALLENGE_ACK_ACK with verify_status=1 to force the server to mark the peer authenticated. It then sends a Hello message to confirm the bypass (expects a Hello response). Structure/purpose by file: - bin/vdaemon_exploit: executable entry point that runs the CLI. - lib/vdaemon_exploit/cli.rb: argument parsing and validation; options include target/port, supplying or generating DTLS certs, and supplying or generating an SSH key for injection. - lib/vdaemon_exploit/exploit/runner.rb: orchestrates phases (DTLS handshake, receive CHALLENGE, send forged CHALLENGE_ACK_ACK, send HELLO, optional SSH key injection, keepalive). - lib/vdaemon_exploit/protocol/*: implements the vdaemon 12-byte header, message type constants, TLV encoding, and message bodies: - ChallengeAckAck: 2-byte body with verify_status (non-zero) + reserved. - Hello: constructs a structured hello body with TLVs. - SshKeyInject: builds a fixed-size 769-byte VMANAGE_TO_PEER payload containing a newline-wrapped SSH public key intended to be appended to vmanage-admin authorized_keys. - lib/vdaemon_exploit/transport/dtls_client.rb + dtls_ffi.rb: DTLS client implemented via Fiddle bindings to OpenSSL (DTLS_client_method, memory BIOs) over a connected UDP socket; explicitly disables peer certificate verification. - lib/vdaemon_exploit/crypto/*: generates self-signed X.509 cert/key and RSA SSH keypair; writes artifacts under ./data/ by default. Operational impact/capabilities: - Remote network authentication bypass on the DTLS control-plane protocol (no valid certificate required). - Optional post-bypass action to inject an SSH public key for vmanage-admin, enabling SSH/NETCONF access (example uses TCP/830). No hardcoded C2 infrastructure is present; endpoints are primarily the user-supplied target host and well-known service ports plus local artifact paths.

sfewer-r7Disclosed Mar 9, 2026rubynetwork (remote) via DTLS/UDP control-plane protocol message forgery leading to authentication bypass; optional post-auth message to inject SSH key enabling SSH access
CVE-2026-20127-Cisco-SD-WAN-Preauth-RCEMaturityPoCVerified exploit

Repository contains a small, operational PoC exploit chain for alleged CVE-2026-20127 targeting Cisco Catalyst SD-WAN Manager/Controller web interfaces. Structure: - README.md: High-level description of CVE-2026-20127 and claimed impact (pre-auth RCE, SD-WAN fabric compromise). Mentions NETCONF/830 in narrative, but the provided code does not implement NETCONF interaction. - cisco-sdwan.py: Main exploit script. Uses requests.Session with TLS verification disabled. Steps: 1) GETs /reports/data/opt/data/containers/config/data-collection-agent/.dca to retrieve a 32-character DCA key. 2) POSTs to /jts/authenticated/j_security_check with j_username=viptela-reserved-dca and j_password=<dca_key> to obtain an authenticated session. 3) Abuses /dataservice/smartLicensing/uploadAck with a crafted multipart filename containing deep ../../ traversal to write a payload WAR into /var/lib/wildfly/standalone/deployments/<name>.gz.war (WildFly auto-deploy). 4) Attempts command execution by POSTing cmd to the deployed JSP at /cmd.gz/cmd.jsp; if already present, it skips deployment and just executes. - cmd.jsp: JSP webshell that runs arbitrary OS commands via bash -c <cmd> and returns stdout/stderr in the HTTP response. - .github/workflows/clojure.yml: Unrelated CI workflow (references Leiningen/Clojure) and does not match repo contents; likely boilerplate. Exploit capabilities: - Remote, network-based exploitation against a target base URL. - Credential/secret harvesting via unauthenticated file read of a DCA key. - Authentication as a reserved service account. - Arbitrary file write leading to server-side WAR deployment on WildFly. - Post-exploitation arbitrary command execution through a JSP webshell endpoint. Notable indicators/targets: - Specific vManage/vSmart-style endpoints: /reports/data/.../.dca, /jts/authenticated/j_security_check, /dataservice/smartLicensing/uploadAck. - WildFly deployments path: /var/lib/wildfly/standalone/deployments/. - Deployed webshell path: /cmd.gz/cmd.jsp. Overall purpose: Demonstrate an end-to-end RCE chain (secret retrieval -> login -> WAR drop -> webshell) suitable for lab validation and defensive testing, rather than a pure detection script.

yonathanpyDisclosed Mar 7, 2026pythonjspnetwork
CVE-2026-20127_EXPMaturityPoCVerified exploit

Repository contains a small operational exploit for Cisco Catalyst SD-WAN/vManage CVE-2026-20127. Structure: (1) scan.py is the main entry point implementing a multi-threaded bulk exploiter/verifier. It disables TLS warnings, reads target URLs from a file, loads a user-supplied WAR (default cmd.war), and for each target: retrieves a DCA key from /reports/data/.../.dca, logs in via /jts/authenticated/j_security_check as viptela-reserved-dca, then uploads the WAR to /dataservice/smartLicensing/uploadAck using a crafted multipart filename that traverses into /var/lib/wildfly/standalone/deployments/ (WildFly auto-deploy). After upload it verifies deployment by requesting /cmd.gz/cmd.jsp and optionally executing a command (default whoami) by POSTing cmd=<command>. (2) cmd.jsp is a simple JSP webshell that runs arbitrary commands via bash -c and returns stdout/stderr prefixed with "command result". (3) README.md provides usage examples and notes that successful exploitation yields command output at /cmd.gz/cmd.jsp?cmd=whoami, and suggests replacing the WAR with a custom webshell. Overall purpose: bulk exploitation leading to remote command execution by deploying a JSP webshell through an authenticated upload/path traversal chain.

BugFor-PingsDisclosed Mar 5, 2026pythonjspnetwork
CVE-2026-20127MaturityPoCVerified exploit

Repository purpose: a Python proof-of-concept exploit for CVE-2026-20127 targeting Cisco Catalyst SD-WAN controllers, chaining an authentication bypass (via DCA key disclosure and reserved account login) with an arbitrary file write/path traversal on an upload endpoint to deploy a WAR-packaged JSP webshell. Structure: - README.md: Describes the attack chain (DCA key discovery -> login -> WAR upload via traversal -> command execution via JSP) and provides CLI usage examples. - exploit.py (entry point): - create_war_from_jsp(): Builds a minimal .war containing the attacker-supplied JSP plus WEB-INF/web.xml. - exploit(): 1) GETs the DCA key from /reports/data/opt/data/containers/config/data-collection-agent/.dca. 2) POSTs credentials to /jts/authenticated/j_security_check using username 'viptela-reserved-dca' and the DCA key as password. 3) Uploads the WAR to /dataservice/smartLicensing/uploadAck using a multipart filename containing directory traversal to write into /var/lib/wildfly/standalone/deployments/. 4) Prints the expected deployment URL. - exec_jsp_command(): Optionally POSTs to the deployed JSP with parameter cmd and checks for the marker string 'command result'. - cmd.jsp: Webshell that executes arbitrary commands via Runtime.exec(["bash","-c",cmd]) and returns stdout/stderr. - requirements.txt: requests, urllib3, and logtext. Notable behaviors/IOCs: - Hardcoded reserved username: viptela-reserved-dca. - Predictable deployment path and URL pattern: /var/lib/wildfly/standalone/deployments/{name}.gz.war and {base}/{name}.gz/{name}.jsp. - Network endpoints used: /.dca key path, j_security_check login, and smartLicensing/uploadAck upload. Overall capability: unauthenticated-to-RCE chain resulting in a persistent web-accessible command execution endpoint (JSP webshell) on the target application server.

leemuunDisclosed Mar 5, 2026pythonjspnetwork
CVE-2026-20127---Cisco-SD-WAN-Preauth-RCEMaturityPoCVerified exploit

Repository contains a small, operational PoC exploit for alleged Cisco SD-WAN pre-auth RCE (claimed CVE-2026-20127). Structure: - README.md: high-level claim and impact notes. - cisco-sdwan.py: main exploit script. It (1) GETs a supposedly web-accessible DCA key from /reports/data/opt/data/containers/config/data-collection-agent/.dca, (2) logs in to /jts/authenticated/j_security_check as the reserved user 'viptela-reserved-dca' using that key, (3) abuses /dataservice/smartLicensing/uploadAck with a crafted multipart filename containing deep directory traversal to write a file into /var/lib/wildfly/standalone/deployments/ as <name>.gz.war, relying on WildFly auto-deploy to publish the app, and (4) attempts command execution by POSTing to the deployed JSP at /cmd.gz/cmd.jsp with parameter cmd. - cmd.jsp: JSP webshell that prints a marker string ("command result") and executes arbitrary OS commands via Runtime.getRuntime().exec(["bash","-c",cmd]), returning stdout and stderr. Notable implementation details/limitations: - The script expects a local file named cmd.war to exist, but the repository only includes cmd.jsp (no WAR packaging instructions or WAR artifact). The exploit therefore requires the operator to build cmd.war containing cmd.jsp. - The upload uses a traversal path embedded in the multipart filename to reach WildFly deployments; success depends on server-side handling of uploaded filenames and permissions. - The script treats exceptions during upload as success (prints "upload ok!") which can mask failures. Overall purpose: achieve remote code execution on a vulnerable Cisco SD-WAN management/controller web application by chaining key disclosure/auth bypass with arbitrary file write to deploy a WAR-based JSP webshell, then execute arbitrary commands over HTTP.

zerozenxlabsDisclosed Mar 4, 2026pythonjspnetwork (pre-auth HTTP auth bypass + arbitrary file write via path traversal in upload + WAR deployment leading to RCE)
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
Cisco SystemsCatalyst SD-WAN Controllerapplication
Cisco SystemsCatalyst SD-WAN Managerapplication
Cisco SystemsSd-Wan Vsmart Controllerapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence47

Every observed campaign linking this CVE to a named adversary.

Associated malware1

Malware families riding this exploit, with evidence and IOCs.

Detection signatures2

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity142

Community discussion across Reddit, Mastodon, and other social sources.