Posadis DNS服务程序存在格式字符串漏洞
2008-04-09 04:28:46来源:互联网 阅读 ()
发布日期:2002-03-27
更新日期:2002-04-03
受影响系统:
Posadis Posadis 0.0m5pre1描述:
BUGTRAQ ID: 4378
CVE(CAN) ID: CVE-2002-0501
Posadis是一款开放源代码的无缓冲DNS服务程序,设计目标是方便使用和配置,运行在Linux、Unix、Microsoft操作系统下。
Posadis在日志函数中存在格式字符串漏洞,可导致攻击者利用此漏洞执行任意代码或者进行拒绝服务攻击。
问题存在于log.cpp的日志函数上:
---
void log_print(message_log_level log_level, char *logmsg, ...) {
char buff[4096];
long tsecs;
struct tm *tstruct;
va_list args;
/* compile buffer */
tsecs = time(NULL);
tstruct = localtime(&tsecs);
sprintf(buff, "d/d/d d:d|", tstruct->tm_year 1900,
tstruct->tm_mon 1, tstruct->tm_mday, tstruct->tm_hour, tstruct->tm_min);
switch (log_level) {
case LOG_LEVEL_INFO: strcat(buff, "INFO: "); break;
case LOG_LEVEL_WARNING: strcat(buff, "WARNING: "); break;
case LOG_LEVEL_ERROR: strcat(buff, "ERROR: "); break;
case LOG_LEVEL_PANIC: strcat(buff, "PANIC: "); break;
}
va_start(args, logmsg);
vsprintf(&buff[strlen(buff)], logmsg, args);
va_end(args);
strcat(buff, "\n");
/* and print it to various targets */
if (!no_stdout_log) printf(buff); <-- heh
if (logfile) fprintf(logfile, buff); <-- heh
#ifdef _WIN32
w32dlg_add_log_item(buff);
#endif
#ifdef HAVE_SYSLOG_H
syslog(log_level, "%s", strchr(buff, '|') 1);
#endif
}
---
攻击者可以使用一个包含格式串的恶意字符串作为参数提供给printf函数,这可能导致攻击者任意修改任意内存的内容。这样,攻击者可能通过覆盖一个函数的返回地址,以DNS服务进程权限执行攻击者指定的任意代码。
<*来源:nick (kkr@dekode.org)
链接:http://archives.neohapsis.com/archives/bugtraq/2002-03/0340.html
*>
建议:
厂商补丁:
Posadis
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://posadis.sourceforge.net/
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash