CVE:CVE-2002-0844
CNNVD:CNNVD-200208-120
CVS是一款免费开放源代码的版本控制系统，可使用在多种Linux和Unix操作系统下，也可以运行于Microsoft Windows操作系统。
CVS中的rcs.c代码中对缓冲区边界缺少正确充分的检查，可导致本地攻击者以cvs进程的权限在系统中执行任意代码。
cvs-1.11/src/rcs.c代码中的sscanf()实现存在典型的单字节缓冲区溢出漏洞，攻击者可以利用堆栈中的帧指针覆盖而以cvs进程的权限执行任意代码，由于info->data的数据由本地符号连接文件中获得，所以此漏洞只能本地进行利用。
问题代码如下所示：
cvs-1.11/src/rcs.c:
info = findnode (vers->other_delta， "special");
        if (info != NULL)
        {
            /* If the size of `devtype' changes， fix the sscanf call also */
            char devtype[16]; <-- 16字节
            if (sscanf (info->data， "%16s %lu"， <-- 应该为15，为不是16，导致单字节缓冲溢出
                        devtype， &devnum_long) < 2)
                error (1， 0， "%s:%s has bad `special' newphrase %s"，
                       workfile， vers->version， info->data);
            devnum = devnum_long;
            if (STREQ (devtype， "character"))
                special_file = S_IFCHR;
            else if (STREQ (devtype， "block"))
                special_file = S_IFBLK;
            else
                error (0， 0， "%s is a special file of unsupported type `%s'"，
                       workfile， info->data);
        }
    }
solution:Upgrade derek_price cvsd to a higher version than 1.11.2,and avoid the version 1.11.2