From technical-alerts@us-cert.gov Fri May 28 03:58:22 2004 From: US-CERT Technical Alerts To: technical-alerts@us-cert.gov Date: Thu, 27 May 2004 19:33:28 -0400 Subject: US-CERT Technical Cyber Security Alert TA04-147A -- CVS Heap Overflow Vulnerability -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Technical Cyber Security Alert TA04-147A CVS Heap Overflow Vulnerability Original release date: May 26, 2004 Last revised: -- Source: US-CERT Systems Affected * Concurrent Versions System (CVS) versions prior to 1.11.16 * CVS Features versions prior to 1.12.8 Overview A heap overflow vulnerability in the Concurrent Versions System (CVS) could allow a remote attacker to execute arbitrary code on a vulnerable system. I. Description 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. In some environments, the CVS server process is started by the Internet services daemon (inetd) and may run with root privileges. An authenticated client could exploit this vulnerability to execute arbitrary code, execute commands, modify sensitive information, or cause a denial of service. Note that if a CVS server is configured to permit anonymous read-only access, then this provides sufficient access to exploit a vulnerable server, as anonymous users are authenticated through the cvspserver process. US-CERT is tracking this issue as VU#192038. This reference number corresponds to CVE candidate CAN-2004-0396. II. Impact An authenticated client could exploit this vulnerability to execute arbitrary code on the vulnerable system with the privileges of the CVS server process. It is possible for an anonymous user with read-only access to exploit a vulnerable server as they are authenticated through the cvspserver process. 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. III. Solution Apply Patch or Upgrade Apply the appropriate patch or upgrade as specified by your vendor. For vendor specific responses, please see your vendor's website or Vulnerability Note VU#192038. This issue has been resolved in Stable CVS Version 1.11.16 and CVS Feature Version 1.12.8. Disable CVS Server Until a patch or upgrade can be applied, consider disabling the CVS server. Block or Restrict Access Block or restrict access to the CVS server from untrusted hosts and networks. The CVS server typically listens on 2401/tcp, but may use another port or protocol. Limit CVS Server Privileges * Configure CVS server to run in a restricted (chroot) environment. * Run CVS servers with the minimum set of privileges required on the host file system. * Provide separate systems for development (write) and public/anonymous (read-only) CVS access. * Host public/anonymous CVS servers on single-purpose, secured systems. Note that some of these workarounds will only limit the scope and impact of possible attacks. Note also that anonymous (read-only) access is sufficent to exploit this vulnerability. Appendix B. References * http://security.e-matters.de/advisories/072004.html * http://secunia.com/advisories/11641/ * http://www.securitytracker.com/alerts/2004/May/1010208.html * http://www.netsys.com/library/papers/chrooted-ssh-cvs-server.txt _________________________________________________________________ US-CERT thanks Stefan Esser of e-matters for reporting this problem and for information used to construct this advisory. _________________________________________________________________ Feedback can be directed to the authors: Jason A. Rafail and Damon Morda _________________________________________________________________ The latest version of this document can be found at: _________________________________________________________________ Copyright 2004 Carnegie Mellon University. Terms of use: _________________________________________________________________ Revision History May 26, 2004: Initial release -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFAtLe5XlvNRxAkFWARAr2XAKDPDLKJJKbP3aSmuEU9uOm1cNdxrQCfUXdT UIlGMjabcCC02Ye9x9UXFzk= =/0Hb -----END PGP SIGNATURE-----