CVE:CVE-2002-1792
CNNVD:CNNVD-200212-181
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进程的权限在系统中执行任意指令。
solution:Upgrade fake_identd fake_identd to a higher version than 0.9,0.9b,1.1,1.2,1.3,1.4,and avoid the version 0.9,0.9b,1.1,1.2,1.3,1.4