SUSE Linux 本地用户可以删除任意系统文件


  受影响系统:
  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

相关内容