CVE:CVE-2004-0396
CNNVD:CNNVD-200406-041
Concurrent Versions System (CVS)是一款使用极为广泛的开放源代码的版本控制软件。
CVS服务器在处理用户提交的给Entry数据打上已被修改或未被修改标记的Is-modified和Unchanged命令时存在问题，远程攻击者可以利用这个漏洞对CVS服务程序进行基于堆的溢出攻击，精心构建提交数据可能以进程权限在系统上执行任意指令。
当客户端发送一条Entry行给服务器，会额外增加字节来标记Entry是否为已被修改的或未被修改的。CVS服务器在处理标记粘附的操作逻辑上存在问题，导致允许插入任意多个'M'字符到用于存放Entry数据的堆缓冲区中。利用malloc() off-by-one利用技术可以触发缓冲区溢出，可能以CVS进程权限在系统上执行任意指令。
solution:Upgrade cvs cvs to a higher version than 1.11,1.12,and avoid the version 1.11,1.12