Advisory 01/2003: CVS remote vulnerability
Klaus-Peter Schrage
kpschrage
Mon May 17 11:43:21 PDT 2004
For a fix on Redhat systems, look here:
http://rhn.redhat.com/errata/RHSA-2003-012.html
Klaus
Stefan Esser (by way of Douglas J Hunley ) wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> e-matters GmbH
> www.e-matters.de
>
> -= Security Advisory =-
>
>
>
> Advisory: CVS remote vulnerability
> Release Date: 2003/01/20
> Last Modified: 2003/01/20
> Author: Stefan Esser [s.esser at e-matters.de]
>
> Application: CVS <= 1.11.4
> Severity: A vulnerability within CVS allows remote compromise of
> CVS servers.
> Risk: Critical
> Vendor Status: Vendor has released a bugfixed version.
> Reference: http://security.e-matters.de/advisories/012003.html
>
>
> Overview:
>
> Concurrent Versions System (CVS) is the dominant open-source version
> control software that allows developers to access the latest code using
> a network connection. CVS version 1.11.4 and below contain a flaw that
> can be used by a remote attacker to execute arbitrary code on the server.
>
> You should also note, that the CVS client/server protocol includes two
> commands (Update-prog and Checkin-prog) that can be used by any CVS user
> with write access to the repository to execute arbitrary shell commands
> on the server. This is a questionable feature, because it is very badly
> documented, is unknown to most CVS administrators and cannot be turned
> off within the configuration files.
>
>
> Details:
>
> While auditing the CVS sourcetree I found a flaw within the handling of
> the Directory request within the server code. By sending a malformed
> directory name it is possible to trigger an error condition that will
> make the function return at a point where a global pointer variable is
> already freed and has not got a new value assigned yet. This will result
> in a classical double-free() when the next Directory request is handled.
> With the help of other CVS requests it is possible to either leak some
> information that could be used to determine the heap position or to
> execute arbitrary code on systems that are known to be vulnerable to
> this kind of bugs. This includes Linux, Solaris and most probably Windows
> systems.
>
> Additionally I was able to create proof of concept code that uses this
> vulnerability to execute arbitrary shell commands on BSD servers. I was
> able to achieve this because all allocated memory is aligned on BSD
> systems which makes it very easy to get newly allocated memory blocks
> into the same position of already freed blocks of the same slotsize.
> In combination with some CVS requests that work on lists of pointers,
> I was able to use this bug to free arbitrary memory addresses. With the
> help of the information leak capabilities of this vulnerability it is
> possible to guess the address of some strings that are needed for the
> read/write access checks. Combined this allowes to bypass the write
> access checks and to abuse the Update-prog/Checkin-prog requests to
> execute arbitrary commands on the server with an anonymous read-only
> account.
>
> The impact of this vulnerability depends highly on the configuration of
> the server. The CVS server is by default started via inetd with root
> privileges. If CVSROOT/passwd is left writeable to the CVS user this means
> a remote root compromise. You must also consider that chrooting the CVS
> daemon may protect the rest of your system against the intruder but will
> still leave the whole source tree vulnerable to the attacker.
>
> Summarized this means that this vulnerability is a threat to most open
> source projects because nearly all of them offer anonymous CVS access to
> the source tree. Even if the attacker is not able to extend his attack
> on the developer CVS server (if it is seperated at all) he could still
> backdoor everything other people download from the anonymous server.
>
>
> Proof of Concept:
>
> e-matters is not going to release an exploit for this vulnerability to
> the public.
>
>
> Disclosure Timeline:
>
> 04. January 2003 - Vendor was notified via email. Unfourtunately the
> person that I tried to contact was on vacation, so I
> received no answer.
> 12. January 2003 - The vulnerability was disclosed to the admins of
> several big public CVS repositories and to some distributors. 15. January
> 2003 - Vendor has committed the fix to the CVS CVS repository. 16. January
> 2003 - Vendor-sec was notified that a new bugfixed CVS version will be
> released on 20th January.
> 20. January 2003 - Vendor has released a new version which fixes the
> double free problem. You can download it at:
> http://ccvs.cvshome.org/servlets/ProjectDownloadList
>
>
> CVE Information:
>
> The Common Vulnerabilities and Exposures project (cve.mitre.org) has
> assigned the name CAN-2003-0015 to this issue.
>
>
> Recommendation:
>
> My recommendation is to immediantly update to the new version. You may
> also consider applying my patch which adds the ability to turn off
> Update-prog and Checkin-prog within your configuration files. You can
> download it from
>
> http://security.e-matters.de/patches/cvs_disablexprog.diff
>
> You should also consider running your CVS server chrooted over SSH instead
> of using the :pserver: method. You can find a tutorial how to setup such a
> server at
>
> http://www.netsys.com/library/papers/chrooted-ssh-cvs-server.txt
>
>
> GPG-Key:
>
> http://security.e-matters.de/gpg_key.asc
>
> pub 1024D/75E7AAD6 2002-02-26 e-matters GmbH - Securityteam
> Key fingerprint = 43DD 843C FAB9 832A E5AB CAEB 81F2 8110 75E7 AAD6
>
>
> Copyright 2003 Stefan Esser. All rights reserved.
>
> - --
>
> - --------------------------------------------------------------------------
> Stefan Esser s.esser at e-matters.de
> e-matters Security http://security.e-matters.de/
>
> GPG-Key gpg --keyserver pgp.mit.edu --recv-key 0xCF6CAE69
> Key fingerprint B418 B290 ACC0 C8E5 8292 8B72 D6B0 7704 CF6C AE69
> - --------------------------------------------------------------------------
> Did I help you? Consider a gift: http://wishlist.suspekt.org/
> - --------------------------------------------------------------------------
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.1 (GNU/Linux)
>
> iD8DBQE+LzxW2MO5UukaubkRAqcwAJ4wI0zFUSfAHTL/APcb+jv1dxrJbQCfbzlX
> B59spaEbgW/M4YIoWWsX+s4=
> =pSri
> -----END PGP SIGNATURE-----
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linux-users mailing list
> Linux-users at linux-sxs.org
> Unsubscribe/Suspend/Etc -> http://www.linux-sxs.org/mailman/listinfo/linux-users
More information about the Linux-users
mailing list