Helix Code包“go-gnome”脚本的符号连接漏洞
发布日期:2000-08-30
更新日期:2000-08-30
受影响系统:
除了Debian之外的Linux发行版
不受影响系统:
Debian Linux
描述:
在安装Helix Code的软件包时,其中有个名为“go-gnome”的shell脚本在/tmp目录中创建文件时
使用了在一定程度上可以预测的文件名(对非Debian的Linux发行版本而言)。这可以被用来覆盖
root用户可存取的系统上的任何文件(攻击者所要做的一切就是建立一个符号连接)。
<*来源:Peter W (
peterw@USA.NET) *>
建议:
1、参照下面的手工安装指南来安装而不要使用go-gnome脚本来安装。
http://www.helixcode.com/desktop/instructions.php3?distribution=manual
2、对go-gnome脚本使用附加的补丁。在本文发表时能够得到的go-gnome脚本的大小是33308字节,这个补丁就是针对该版本的。补丁可以从如下的地方取得:
ftp://ftp.helixcode.com/helix/
http://go-gnome.com/
(即 使用命令行“lynx -source http://go-gnome.com/ > /safe/path/go-gnome”)
在你得到补丁并给脚本打补丁之前,参照手工安装指南来安装是较好的办法,具体可参看1中的说明。
补丁:
--- go-gnome.sh.current Thu Aug 24 21:41:23 2000
+++ go-gnome.sh Thu Aug 24 21:53:40 2000
@@ -121,7 +121,7 @@
}
my_uudecode () {
- _awkprog="/tmp/uudecode.$$.awk"
+ _awkprog="${TMPDIR}/uudecode.$$.awk"
_uudecode_out=$1
rm -f ${_uudecode_out}
@@ -554,7 +554,12 @@
# The action starts here.
#
-cd /tmp
+# Trust the user's TMPDIR. Though it might be safer to insist on a new,
mode 0700 dir
+if [ -z "${TMPDIR}" ]; then
+ mkdir -m 0700 /tmp/helixcode.$$ || bail_error "Please run again. Unable
to make safe tmp dir"
+ TMPDIR=/tmp/helixcode.$$
+fi
+cd ${TMPDIR} || bail_error "Cannot cd to ${TMPDIR}"
#
# Step 1
@@ -710,7 +715,7 @@
echo -n "==> Extracting snarf..."
-SNARF="/tmp/snarf.$$"
+SNARF="${TMPDIR}/snarf.$$"
if [ $? -ne 0 ]
then
bail_temp
@@ -728,6 +733,7 @@
fi
+cd ${TMPDIR} || bail_error "Cannot cd to ${TMPDIR}"
mv $SNARF $SNARF.gz
${_gunzip} $SNARF.gz
chmod +x $SNARF
@@ -791,7 +797,7 @@
echo -n "==> Fetching the main installation program; please be
patient..."
-INSTALLER="/tmp/installer.$$"
+INSTALLER="${TMPDIR}/installer.$$"
if [ $PROC = i686 -o $PROC = i586 -o $PROC = i486 -o $PROC = i386 ]
then
@@ -817,6 +823,7 @@
# Go, go, go!
#
+cd ${TMPDIR} || bail_error "Cannot cd to ${TMPDIR}"
mv -f $INSTALLER $INSTALLER.gz
${_gunzip} $INSTALLER.gz
@@ -829,5 +836,6 @@
echo -n "==> Cleaning up temporary files..."
rm -f $INSTALLER
rm -f $SNARF
-rm -f /var/tmp/rpm-*
+echo "You may want to delete files in /var/tmp whose names begin with
rpm-"
+#rm -f /var/tmp/rpm-*
echo "done."
浏览次数:6074
严重程度:0(网友投票)