CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本, 从而达到保证文件同步的目的。CVS客户端存在一个安全漏洞,允许恶意CVS服务器对客户端进行基于堆的缓冲区溢出。问题存在于proxy_connect()函数(src/client.c)中,sscanf()会把read_buf的第一个字拷贝到write_buf但没有进行充分的边界检查。这允许恶意HTTP代理服务器对CVS客户端进行拒绝服务或向连接的客户端发送恶意HTTP应答代码以运行CVS的用户特权在客户端系统上执行任意代码。
用户可参考如下供应商提供的安全公告获得补丁信息:https://bugzilla.redhat.com/show_bug.cgi?id=784141