漏洞信息详情
cfingerd 远程格式串漏洞
- CNNVD编号:CNNVD-200108-022
- 危害等级: 超危
- CVE编号:
CVE-2001-0609
- 漏洞类型:
输入验证
- 发布时间:
2001-04-19
- 威胁类型:
远程
- 更新时间:
2005-10-20
- 厂 商:
infodrom - 漏洞来源:
-
漏洞简介
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)
参考网址
来源: 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