PFinger Syslog远程格式串溢出漏洞
发布日期:2002-12-16
更新日期:2002-12-23
受影响系统:PFinger PFinger 0.7.8
PFinger PFinger 0.7.7
PFinger PFinger 0.7.6
PFinger PFinger 0.7.5
描述:
BUGTRAQ ID:
6403
PFinger是一款开放源代码的可替代标准finger的守护程序。
PFinger对用户输入缺少正确过滤,远程攻击者可以利用这些漏洞进行格式字符串攻击,可能以PFinger进程在系统上执行任意指令。
格式字符串漏洞存在于log.c的log()函数中,其中使用了不安全的syslog()调用:
..
syslog(level, syslog_mem);
..
要利用这个漏洞需要通过在进行finger主机的DNS服务器中设置响应的恶意主机名,因为记录请求日志代码如下:
h_ent = gethostbyaddr((char *)&remaddr.sin_addr, sizeof(remaddr.sin_addr),
AF_INET);
if (h_ent)
conn.hostname = strdup(h_ent->h_name);
else
conn.hostname = "(remote)";
log(LOG_INFO, "Connection from %s
(%s)",conn.hostname,inet_ntoa(remaddr.sin_addr));
上面的代码对finger的主机进行域名查询,并记录连接信息。如果攻击者可以控制它们的DNS服务器,更改服务器设置,把主机名改为包含恶意格式字符串的名称,或提供伪造的DNS应答,就可能以任意值覆盖堆栈内存,精心构建主机名数据可能以PFinger进程在系统上执行任意指令。
<*来源:NGSSoftware Insight Security Research (
nisr@nextgenss.com)
链接:
http://www.ngssoftware.com/advisories/pfinger.txt
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 把如下代码:
..
syslog(level, syslog_mem);
..
改成:
..
syslog(level,"%s", syslog_mem);
..
厂商补丁:
PFinger
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.xelia.ch/unix/pfinger浏览次数:2648
严重程度:0(网友投票)