CVE-2002-1789
CVSS7.2
发布时间 :2002-12-31 00:00:00
修订时间 :2008-09-05 16:31:31
NMCO    

[原文]Format string vulnerability in newsx NNTP client before 1.4.8 allows local users to execute arbitrary code via format string specifiers that are not properly handled in a call to the syslog function.


[CNNVD]NewsX NNTP SysLog本地格式串溢出漏洞(CNNVD-200212-695)

        
        NewsX NNTP客户端是一款用于访问Internet News服务器的程序。
        NewsX NNTP客户端对用户提交的输入缺少正确的检查,本地攻击者可以利用这个漏洞进行格式串溢出攻击。
        NewsX NNTP客户端中的syslog函数对用户提交数据缺少正确的检查,本地攻击者可以提交恶意格式字符串导致写内存任意位置,当NNTP客户端如果以setuid/setgid属性安装时,精心构建格式串数据可能导致攻击者以NNTP进程的权限在系统上执行任意指令。
        目前还不清楚是否可以远程利用这个漏洞。
        

- CVSS (基础分值)

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

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

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

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

未找到相关OVAL定义

- 官方数据库链接

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

- 其它链接及资源

http://www.securityfocus.com/bid/5240
(PATCH)  BID  5240
http://www.iss.net/security_center/static/9583.php
(PATCH)  XF  newsx-syslog-format-string(9583)
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SN-02:05.asc
(VENDOR_ADVISORY)  FREEBSD  FreeBSD-SN-02:05

- 漏洞信息

NewsX NNTP SysLog本地格式串溢出漏洞
高危 输入验证
2002-12-31 00:00:00 2005-10-20 00:00:00
本地  
        
        NewsX NNTP客户端是一款用于访问Internet News服务器的程序。
        NewsX NNTP客户端对用户提交的输入缺少正确的检查,本地攻击者可以利用这个漏洞进行格式串溢出攻击。
        NewsX NNTP客户端中的syslog函数对用户提交数据缺少正确的检查,本地攻击者可以提交恶意格式字符串导致写内存任意位置,当NNTP客户端如果以setuid/setgid属性安装时,精心构建格式串数据可能导致攻击者以NNTP进程的权限在系统上执行任意指令。
        目前还不清楚是否可以远程利用这个漏洞。
        

- 公告与补丁

        临时解决方法:
        如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
        * 暂时没有合适的临时解决方法。
        厂商补丁:
        newsx
        -----
        diff -urN /usr/ports/news/newsx.orig/Makefile /usr/ports/news/newsx/Makefile
        --- /usr/ports/news/newsx.orig/Makefile Sun Jul 7 22:00:46 2002
        +++ /usr/ports/news/newsx/Makefile Mon Jul 15 21:51:29 2002
        @@ -6,10 +6,10 @@
        #
        PORTNAME= newsx
        -PORTVERSION= 1.4.6
        +PORTVERSION= 1.4.8
        CATEGORIES= news
        MASTER_SITES= ftp://ftp.kvaleberg.com/pub/
        -DISTNAME= ${PORTNAME}-${PORTVERSION:S/.6/pl6/}
        +DISTNAME= ${PORTNAME}-${PORTVERSION:S/.8/pl6/}
        MAINTAINER= thierry@pompo.net
        diff -urN /usr/ports/news/newsx.orig/files/patch-configure.in /usr/ports/news/newsx/files/patch-configure.in
        --- /usr/ports/news/newsx.orig/files/patch-configure.in Thu Jan 31 21:55:12 2002
        +++ /usr/ports/news/newsx/files/patch-configure.in Mon Jul 15 21:47:42 2002
        @@ -1,5 +1,14 @@
        --- configure.in.orig Tue Jan 29 20:15:19 2002
        -+++ configure.in Thu Jan 31 01:05:04 2002
        ++++ configure.in Mon Jul 15 21:46:55 2002
        +@@ -167,7 +167,7 @@
        + dnl
        + AC_INIT(FAQ)
        +
        +-AM_INIT_AUTOMAKE(newsx, 1.4pl6)
        ++AM_INIT_AUTOMAKE(newsx, 1.4pl8)
        + AM_CONFIG_HEADER(config.h)
        + dnl Only most recent year required:
        + COPYRIGHT="Copyright 2002 Egil Kvaleberg <egil@kvaleberg.no>"
        @@ -189,7 +189,7 @@
        dnl Default list of locations to visit in search of the
        dnl news configuration file
        diff -urN /usr/ports/news/newsx.orig/files/patch-src_logmsg.c /usr/ports/news/newsx/files/patch-src_logmsg.c
        --- /usr/ports/news/newsx.orig/files/patch-src_logmsg.c Thu Jan 1 01:00:00 1970
        +++ /usr/ports/news/newsx/files/patch-src_logmsg.c Mon Jul 15 21:40:27 2002
        @@ -0,0 +1,74 @@
        +--- src/logmsg.c.orig Wed Feb 14 07:55:40 2001
        ++++ src/logmsg.c Mon Jul 15 21:38:30 2002
        +@@ -1,4 +1,4 @@
        +-/* VER 079 TAB P $Id: logmsg.c,v 1.10.2.1 2001/02/14 06:55:40 egil Exp $
        ++/* VER 080 TAB P $Id: logmsg.c,v 1.10.2.1 2001/02/14 06:55:40 egil Exp $
        + *
        + * handle error messages and such...
        + *
        +@@ -60,9 +60,9 @@
        + /*
        + * try to make a surrogate
        + * we assume that on those architectures where this trick
        +- * doesn't work there we will surely have stdarg.h or varargs.h
        ++ * doesn't work there we will surely be stdarg.h or varargs.h
        + */
        +-#define vsprintf(buf, fmt, ap) sprintf(buf, fmt, arg1, arg2, arg3, arg4)
        ++#define vsnprintf(buf,siz,fmt,ap) snprintf(buf,siz,fmt, arg1,arg2,arg3,arg4)
        + #define vfprintf(file, fmt, ap) fprintf(file, fmt, arg1, arg2, arg3, arg4)
        + #endif
        +
        +@@ -156,7 +156,7 @@
        + #endif
        + {
        + int e;
        +- char buf[BUFSIZ]; /* BUG: do we risk overwriting it? */
        ++ char buf[BUFSIZ];
        +
        + #if HAVE_VPRINTF
        + va_list ap;
        +@@ -176,34 +176,33 @@
        + case L_ERRno:
        + case L_ERR:
        + e = errno;
        +- vsprintf(buf, fmt, ap);
        +- if (type == L_ERRno) {
        +- sprintf(buf + strlen (buf), ": ", str_error(e));
        +- }
        +- strcat(buf, "\n");
        ++ vsnprintf(buf, sizeof(buf), fmt, ap);
        + #if HAVE_SYSLOG_H
        + if (!debug_opt) {
        +- syslog(LOG_ERR, buf);
        ++ syslog(LOG_ERR, "\n", buf,
        ++ ((type==L_ERRno) ? ": ":""),
        ++ ((type==L_ERRno) ? str_error(e):""));
        + } else
        + #endif
        + {
        + clean_line();
        +- fprintf(stderr, ": ", pname, buf);
        ++ fprintf(stderr, ": \n", pname, buf,
        ++ ((type==L_ERRno) ? ": ":""),
        ++ ((type==L_ERRno) ? str_error(e):""));
        + fflush(stderr);
        + }
        + break;
        +
        + case L_INFO:
        +- vsprintf(buf, fmt, ap);
        +- strcat(buf, "\n");
        ++ vsnprintf(buf, sizeof(buf), fmt, ap);
        + #if HAVE_SYSLOG_H
        + if (!debug_opt) {
        +- syslog(LOG_INFO, buf);
        ++ syslog(LOG_INFO, "\n", buf);
        + } else
        + #endif
        + {
        + clean_line();
        +- fprintf(stderr, "", buf);
        ++ fprintf(stderr, "\n", buf);
        + fflush(stderr);
        + fflush(stderr);
        + }
        + break;

- 漏洞信息

27088
newsx syslog Function Local Format String
Local Access Required, Local / Remote, Context Dependent Input Manipulation
Loss of Integrity Patch / RCS, Upgrade
Vendor Verified

- 漏洞描述

Unknown or Incomplete

- 时间线

2002-07-15 Unknow
Unknow Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

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

版权声明

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