CVS Daemon RCS本地单字节缓冲区溢出漏洞 CVE-2002-0844 CNNVD-200208-120

4.6 AV AC AU C I A
发布: 2002-08-12
修订: 2024-02-02

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); } }

0%
暂无可用Exp或PoC
当前有2条受影响产品信息