CVS contains a heap overflow in the handling of flag insertion

ID VU:192038
Type cert
Reporter CERT
Modified 2004-07-13T00:00:00



A heap overflow vulnerability in the Concurrent Versions System (CVS) could allow a remote attacker to execute arbitrary code on a vulnerable system.


CVS is a source code maintenance system that is widely used by open-source software development projects. There is a heap memory overflow vulnerability in the way CVS handles the insertion of modified and unchanged flags within entry lines. When processing an entry line, an additional byte of memory is allocated to flag the entry as modified or unchanged. There is a failure to check if a byte has been previously allocated for the flag, which creates an off-by-one buffer overflow. By calling a vulnerable function several times and inserting specific characters into the entry lines, a remote attacker could overwrite multiple blocks of memory. The CVS server process is commonly started by the Internet services daemon (inetd) and run with root privileges.

According to the e-matters security advisory, the following versions are affected:

CVS feature release <= 1.12.7
CVS stable release <= 1.11.15


An attacker could exploit this vulnerability to execute arbitrary code, execute commands, read sensitive information, or cause a denial of service. Any client with the ability to create entry lines could exploit this vulnerability. It is possible for an anonymous user with read-only access to exploit this vulnerability against a vulnerable server. In addition to compromising the system running CVS, there is a significant secondary impact in that source code maintained in CVS repositories could be modified to include trojan horses, backdoors, or other malicious code.


Apply a patch or upgrade