Symantec Web Gateway 5.2.2 OS Command Injection
Posted on 07 October 2016
------------------------------------------------------------------------------------ Symantec Web Gateway <= 5.2.2 (new_whitelist.php) OS Command Injection Vulnerability ------------------------------------------------------------------------------------ [-] Software Link: https://www.symantec.com/ [-] Affected Versions: Version 5.1.1.24, 5.2.1.80 and 5.2.2.118. Other versions might be affected. [-] Vulnerability Description: The vulnerable code is located in the /spywall/new_whitelist.php script: 141. $isNew = $_POST['isNew']; 142. $sid = $_POST['sid']; 143. $exceptions = array(); 144. $last_modified = time(); 145. /* validate input */ 146. 147. if (!$sid && !isValidWhiteDomain($white_ip) && !isIpSubnet($white_ip)) { 148. $errors['white_ip'] = 'Please enter a valid domain or IP address or IP/mask.'; 149. } The vulnerability exists because the validation checks may be bypassed by setting the "sid" POST parameter to a value different from zero. In this way, even though the "white_ip" POST parameter (assigned to the $white_ip variable) is not a valid domain or IP address, it will be passed to the add_whitelist() function as its $url parameter: 329. function add_whitelist ($signature, $url, $whitelist, $ignore_auth, $restoreConfig = 0) { 330. [...] 331. if (!isCiu()){ 332. if ($restoreConfig) { 333. syscall("sudo /usr/local/bin/updateDB 2 1 $url $whitelist $ignore_auth [...] 334. } else { 335. syscall("sudo /usr/local/bin/updateDB 2 1 $url $whitelist $ignore_auth [...] 336. } 337. } This can be exploited to inject and execute arbitrary OS commands with the privileges of the "root" user on the appliance. Successful exploitation of this vulnerability requires an user account with read-write permissions (POLICY_LEVEL). [-] Solution: Update to version 5.2.5. [-] Disclosure Timeline: [09/07/2016] - Vendor notified [11/07/2016] - Vendor response [09/09/2016] - Vendor asks to confirm this is fixed in version 5.2.5 [15/09/2016] - Feedback sent to the vendor [05/10/2016] - Publication of vendor"s advisory: https://goo.gl/aOJq5A [06/10/2016] - Publication of this advisory [-] CVE Reference: The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CVE-2016-5313 to this vulnerability. [-] Credits: Vulnerability discovered by Egidio Romano. [-] Original Advisory: http://karmainsecurity.com/KIS-2016-12