Fake Identd远程缓冲区溢出漏洞
发布日期:2002-07-29
更新日期:2002-08-01
受影响系统:Fake Identd Fake Identd 1.4
Fake Identd Fake Identd 1.3
Fake Identd Fake Identd 1.2
Fake Identd Fake Identd 1.1
Fake Identd Fake Identd 0.9 b
Fake Identd Fake Identd 0.9
不受影响系统:Fake Identd Fake Identd 1.5
描述:
BUGTRAQ ID:
5351
CVE(CAN) ID:
CVE-2002-1792
Fake Identd是一款小型的使用静态应答的Ident服务程序。
Fake Identd对客户端的查询缺少正确的边界缓冲检查,远程攻击者可以利用这个漏洞进行远程缓冲区溢出攻击。
Fake Identd对客户端的查询存储在静态全局20个字节的缓冲中,相关的代码类似如下:
len = 0;
for(;;) {
if ((l = read(s, buf + len, sizeof buf)) > 0) {
if (query_looks_valid(buf)) {
reply(s, buf);
}
} else if (len + l == sizeof buf) {
goto abort;
} else {
len += l;
}
}
上面的代码对缓冲的边界检查不是很充分,通过把数据分离在两个或者多个数据包中,(len + l == sizeof buf)的检查很容易被绕过。
另外,Reply()函数调用fdprint()函数也存在一个固定的缓冲区分配,而进行填充的时候没有进行边界检查,这个缓冲由全局指针(identuser)的值填充,也可以造成缓冲溢出。
攻击者精心构建查询的数据可导致以Fake Identd进程的权限在系统中执行任意指令。
<*来源:Jedi/Sector One (j@pureftpd.org)
链接:
http://archives.neohapsis.com/archives/bugtraq/2002-07/0370.html
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 暂时没有合适的临时解决方法。
厂商补丁:
Fake Identd
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载使用Fake Identd 1.5版本:
http://iki.fi/too/sw/releases/identd.c浏览次数:2939
严重程度:0(网友投票)