|
RedHat Linux dump 缓冲区溢出漏洞 受影响系统:
MandrakeSoft Linux Mandrake 7.0
MandrakeSoft Linux Mandrake 6.1
RedHat Linux 6.2
RedHat Linux 6.1
RedHat Linux 6.0
RedHat Linux 5.2
RedHat Linux 5.1
不受影响系统:
NetBSD-current
描述:
RedHat Linux中有一个文件备份工具"dump".它被安装在 /sbin下并且被设置了
setuid/setgid root位。当传送一个很长的字符串给"-f a"参数时,dump将发生
堆栈溢出。如果提供的参数经过精心构造,攻击者就可能替代堆栈中保存的EIP
(指令指针或者返回地址)并以gid root权限来执行任意代码。Dump在crash时会
丢弃setuid root权限,但是没有丢弃setgid root权限。因此攻击者可能利用这
个漏洞获得setgid root权限,进而可能获取对整个系统的控制权。
<* 来源: - Yong-jun, Kim -
e - mail : loveyou@hackerslab.org s96192@ce.hannam.ac.kr
homepage : http://www.hackerslab.org http://ce.hannam.ac.kr/~s96192
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
[loveyou@loveyou SOURCES]$ dump -f a `perl -e 'print "x" x 556'`
DUMP: Date of this level 0 dump: Mon Feb 28 14:45:01 2000
DUMP: Date of last level dump: the epoch
DUMP: Dumping xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx to a
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: 颇老 捞抚捞 呈公 遍聪促 while opening filesystem
DUMP: SIGSEGV: ABORTING!
Segmentation fault
[loveyou@loveyou SOURCES]$ dump -f a `perl -e 'print "loveyou" x 556'`
DUMP: SIGSEGV: ABORTING!
Segmentation fault <= occur ctime4()
建议:
Yong-jun, Kim提供了一个patch:
[root@loveyou SOURCES]# diff -ru dump-0.4b13/dump/main_orig.c dump-0.4b13/dump/main.c
--- dump-0.4b13/dump/main_orig.c Mon Feb 28 14:40:01 2000
+++ dump-0.4b13/dump/main.c Mon Feb 28 14:40:57 2000
@@ -273,6 +273,9 @@
exit(X_STARTUP);
}
disk = *argv++;
+ if ( strlen(disk) > 255 )
+ exit(X_STARTUP);
+
argc--;
if (argc >= 1) {
(void)fprintf(stderr, "Unknown arguments to dump:");
临时解决办法:
去掉dump的suid位: chmod a-s /sbin/dump |
|