首页 -> 安全研究

安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障