Description
Hello,
I am on the team of developers of Virtualmin and would like to inform you, that such suggestion:
roundcubemail/plugins/password/helpers/chgvirtualminpasswd.c
Lines 6 to 13 in 8547ccb
.. in combination with virtualmin.php
:
exec("$curdir/chgvirtualminpasswd modify-user --domain $domain --user $username --pass $newpass", $output, $returnvalue);
.. is equivalent to creating root capable exploit, because virtualmin
command is meant to be run by root user only.
For example a regular user could modify virtualmin.php
file and/or run as un-privileged user:
doms=`./chgvirtualminpasswd list-domains`
for dom in $doms; do
./chgvirtualminpasswd delete-domain --domain $dom
done
I suggest to hardcode the command chgvirtualminpasswd modify-user --domain $domain --user $username --pass $newpass
from PHP script into C script and later let binary receive a domain, a username and a password as parameters from PHP script, like:
exec("$curdir/chgvirtualminpasswd $domain $username $newpass", $output, $returnvalue);
By the way main() {}
on chgvirtualminpasswd.c
should be int main() {}
, otherwise recent versions of compilers will fail.