RANT
I've given the FreeBSD team about a month to get something official together.
Maintainers were supposedly contacted, but no progress has been made. As
promised, here are the goods:
OVERVIEW
Vulnerabilities in seyon, xmindpath and angband can be used to upgrade
privileges.
BACKGROUND
All of the vulnerabilities discussed herein are based on my work on
FreeBSD 3.3-RELEASE. Each of the programs was installed with the
default permissions given when unpacked with sysinstall.
These permissions are:
-rwxr-sr-x 1 bin dialer 88480 Sep 11 00:55 /usr/X11R6/bin/seyon
-rwsr-xr-x 1 uucp bin 7780 Sep 11 05:15 /usr/X11R6/bin/xmindpath
-r-xr-sr-x 1 bin games 481794 Sep 11 01:10 /usr/X11R6/bin/angband
These programs may be installed on other systems with different
permissions as a result of a version change or a different packing
scheme.
DETAILS
Vuln #1 The Seyon Mess
To summarize: Seyon was supposedly not meant to run with additional
privileges. There are numerous problems with seyon and I've probably not
found all of them. They are:
Buffer Overflows:
1. $HOME
2. seyon -emulator $BUF
3. seyon -modems $BUF
4. many long text box input string overflows while in program
Input Validation:
1. seyon will search $PATH for "xterm" and "seyon-emu" and exec with
fullprivs (as noted in previous advisory)
2. seyon -emulator /program/to/execute/with/full/privs
These privileges might be upgradable to root if you are able to a.
trojan a dialer-writable file or b. use a symlink attack to clobber .rhosts or
similar c. snoop device i/o.
Vuln #2 xmindpath
/usr/X11R6/bin/xmindpath (suid uucp by default), contains a buffer
overflow which will allow any user to gain uucp privs. Simply enough:
xmindpath -f $BUF
See my "faxalter" advisory for more info on gaining root w/euid uucp.
Vuln #3 fun and egid games
Want to impress your friends with the highest tetris score known to man?
Gain egid games with a buffer overflow in /usr/X11R6/bin/angband. The
overflows are:
angband -u$BUF
angband -d$BUF
EXPLOITS
Seyon:
I've not written buffer overflow exploits for Seyon since an
equivalent-yield program execution vulnerability exists, but it is
certianly possible. The latter exploit is:
seyon -emulator /program/to/execute
Note that you'll have to execute a program that will ignore the args
that seyon passes to it automatically as shown: