受影响系统:
S.u.S.E. Linux 6.3
S.u.S.E. Linux 6.2
S.u.S.E. Linux 6.1
S.u.S.E. Linux 6.0
描述:
SUSE Linux 6.3以及更低版本存在一个安全漏洞,允许任意用户删除系统中的任意文件。如果在/etc/rc.onfig中的MAX_DAYS_IN_TMP变量被设置成大于0值,那么任意本地用户都可以删除任意的系统文件。在SuSE 6.3中,这个问题是由etc/cron.daily/aaa_base产生的,而在更老一点的版本中,问题处在/root/bin/cron.daily程序。
<* 来源:peter@gmv.spm.univ-rennes1.fr *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
mkdir -p "/tmp/foo /etc"
touch -t old-date "/tmp/foo /etc/filetodelete"
建议:
下面是一个SuSE 6.3下的临时补丁程序:
--- aaa_base~ Mon Jan 3 18:16:55 2000
+++ aaa_base Fri Apr 21 08:42:19 2000
@@ -158,20 +158,10 @@
done
for TMP_DIR in $TMP_DIRS_TO_CLEAR ; do
- for DEL_FILE in `find $TMP_DIR/. $OMIT \( -type f -o -type l \) \
- -atime +$MAX_DAYS_IN_TMP | sort -r` ; do
- rm -f $DEL_FILE
- DEL_DIR=`dirname $DEL_FILE`
- if [ "$DEL_DIR" != "$TMP_DIR/." ] ; then
- rmdir $DEL_DIR 2> /dev/null
- fi
- done
- done
- for DEL_DIR in `find $TMP_DIR/. $OMIT \( -type d \) \
- -ctime +$MAX_DAYS_IN_TMP | sort -r` ; do
- if [ "$DEL_DIR" != "$TMP_DIR/." ] ; then
- rmdir $DEL_DIR 2> /dev/null
- fi
+ find $TMP_DIR/. $OMIT ! -type d \
+ -atime +$MAX_DAYS_IN_TMP -exec rm -f '{}' ';'
+ find $TMP_DIR/. $OMIT -depth -type d -empty -mindepth 1 \
+ -mtime +$MAX_DAYS_IN_TMP -exec rmdir '{}' ';'
done
fi