Wade Maxfield
1999-Nov-13 01:59 UTC
Retraction: security hole in sudo allows users full access
I did not understand the man pages for sudo and incorrectly interpreted the results. I interpreted the ALL to apply to all commands defined in the sudoers file. Basically, I'm an idiot, but here is the chain I followed, and the correct interpretation. In the man pages on sudo, it says the following: A User_List is made up of one or more usernames, uids (prefixed with '#'), System groups (prefixed with '%'), netgroups (prefixed with '+') and other aliases. Each ......... A Host_List is made up of one or more hostnames, IP addresses, network numbers, netgroups (prefixed with '+') and other aliases. Again, the value of an item may be ......... Cmnd_List ::= Cmnd | Cmnd ',' Cmnd_List ....... The reserved word ALL is a a built in alias that always causes a match to succeed. It can be used wherever one might otherwise use a Cmnd_Alias, User_Alias, Runas_Alias, or Host_Alias. You should not try to define your own alias called ALL as the built in alias will be used in preference to your own. I assumed the built in alias ALL had to do with the commands defined in the sudoers file. Assuming definitely made an ass out of me. I used the example template in the sudoers file for fulltimers. It turns out that ALL on the RIGHT side causes a match to succeed OUTSIDE the definitions in the file for all the following: Cmnd_Alias User_Alias Runas_Alias Host_Alias If you pick up the example lines in sudoers man pages for the following, the ALL on the RIGHT hand side of FULLTIMERS means any executable in any location on any computer. # User alias specification User_Alias FULLTIMERS = millert, mikef, dowdy .... Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\ /usr/sbin/restore, /usr/sbin/rrestore Cmnd_Alias KILL = /usr/bin/kill Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \ /usr/local/bin/tcsh, /usr/bin/rsh, \ /usr/local/bin/zsh Cmnd_Alias SU = /usr/bin/su ... FULLTIMERS ALL = NOPASSWD: ALL I must apologize again. I beat on this problem for about 3 months before I posted it and I never caught on. FLAME AWAY! I deserve it this time!!! wade