• Software Link:
• Affected Versions:
Version 5.2.1 and prior versions.
• Vulnerability Description:
The vulnerable code is located in the /spywall/restore.php script:
$temp_file_name = trim($restore_file["tmp_name"]); $upload_orig_name = basename($restore_file['name']); //do this in case user change .des3 extnsion to .bak which is idential to backup file,will case unzip not work $temp_orig_name = str_replace(".bak", ".des3",$upload_orig_name); $filePath = "/tmp/$temp_orig_name"; syscall ("sudo rm -f $filePath"); //make sure this file not exists. syscall ("sudo rm -f /tmp/backup_*.des3");
User input passed via the filename of uploaded files is not properly sanitised before being used in a call to the “syscall()” function at line 86. This can be exploited to inject and execute arbitrary OS commands with the privileges of the “root” user on the appliance.
NOTE: version 5.1.1 suffers from an access restriction issue as well, meaning that the vulnerability can be exploited by any kind of user (even the ones with the lowest access privileges). In version 5.2.1 the vulnerability has been fixed and proper authorization checks are in place, however the vulnerability has been reintroduced in a different line of code and can be exploited only by administrator users.
Update to version 5.2.2.
• Disclosure Timeline:
[08/10/2014] – Vendor notified with vulnerability details
[05/11/2014] – Vendor reply this will be fixed in the next release
[16/12/2014] – Version 5.2.2 released
[16/12/2014] – Vendor publishes security bulletin
[31/12/2014] – Publication of this advisory
• CVE Reference:
Vulnerability discovered by Egidio Romano, Secunia Research.