cfingerd 远程格式串漏洞

漏洞信息详情

cfingerd 远程格式串漏洞

漏洞简介

CVE(CAN) ID: CAN-2001-0609

在cfingerd的日志记录程序中存在一个格式串漏洞,允许远程用户获取root权限。

cfingerd会查询和记录请求此服务的远程用户的用户名。如果攻击者设置在远程

主机上设置一个虚假的indentd服务程序以返回一个格式化字符串作为用户名,

他就可以利用这个格式串漏洞来进行攻击。由于cfingerd通常是以root身份运行,

因此攻击者可能远程获取对被攻击主机的控制权限。

有问题的代码部分在main.c 第245,258和268行:

syslog(LOG_NOTICE, (char *) syslog_str);

这里的syslog_str是攻击者可以控制的。利用代码中一个未中断的缓冲区,攻击

者可以将定制的代码传送给syslog.

漏洞公告

临时解决方法:

漏洞发现者提供了一个临时的补丁:

— cfingerd-1.4.3/src/main.c.orig Fri Aug 6 23:33:38 1999

+++ cfingerd-1.4.3/src/main.c Wed Apr 11 18:55:43 2001

@@ -242,7 +242,7 @@

if (!emulated) {

snprintf(syslog_str, sizeof(syslog_str), “%s fingered (internal) from %s”, username,

ident_user);

– syslog(LOG_NOTICE, (char *) syslog_str);

+ syslog(LOG_NOTICE, “%s”, (char *) syslog_str);

}

handle_internal(username);

@@ -255,7 +255,7 @@

snprintf(syslog_str, sizeof(syslog_str), “%s fingered from %s”,

prog_config.p_strings[D_ROOT_FINGER], ident_user);

– syslog(LOG_NOTICE, (char *) syslog_str);

+ syslog(LOG_NOTICE, “%s”, (char *) syslog_str);

}

handle_standard(username);

@@ -265,7 +265,7 @@

snprintf(syslog_str, sizeof(syslog_str), “%s %s from %s”, username,

prog_config.p_strings[D_FAKE_USER], ident_user);

– syslog(LOG_NOTICE, (char *) syslog_str);

+ syslog(LOG_NOTICE, “%s”, (char *) syslog_str);

}

handle_fakeuser(username);

— cfingerd-1.4.3/src/rfc1413.c.orig Sun Aug 29 14:14:25 1999

+++ cfingerd-1.4.3/src/rfc1413.c Wed Apr 11 18:53:45 2001

@@ -98,7 +98,7 @@

if (*(++cp) == ‘ ‘) cp++;

memset(uname, 0, sizeof(uname));

– for (xp=uname; *cp != ‘\0’ && *cp!=’\r’&&*cp!=’\n’&&strlen(uname)
(uname);>

参考网址

来源: XF
名称: cfingerd-remote-format-string(6364)
链接:http://xforce.iss.net/static/6364.php

来源: BID
名称: 2576
链接:http://www.securityfocus.com/bid/2576

来源: BUGTRAQ
名称: 20010411 CFINGERD remote vulnerability
链接:http://archives.neohapsis.com/archives/bugtraq/2001-04/0202.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享