<<< Date Index >>>     <<< Thread Index >>>

[OpenPKG-SA-2007.008] OpenPKG Security Advisory (cvstrac)



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

____________________________________________________________________________

Publisher Name:          OpenPKG GmbH
Publisher Home:          http://openpkg.com/

Advisory Id (public):    OpenPKG-SA-2007.008
Advisory Type:           OpenPKG Security Advisory (SA)
Advisory Directory:      http://openpkg.com/go/OpenPKG-SA
Advisory Document:       http://openpkg.com/go/OpenPKG-SA-2007.008
Advisory Published:      2007-01-29 14:02 UTC

Issue Id (internal):     OpenPKG-SI-20070117.01
Issue First Created:     2007-01-17
Issue Last Modified:     2007-01-29
Issue Revision:          08
____________________________________________________________________________

Subject Name:            cvstrac
Subject Summary:         VCS web frontend
Subject Home:            http://www.cvstrac.org/
Subject Versions:        * = 2.0.0

Vulnerability Id:        CVE-2007-0347
Vulnerability Scope:     global (not OpenPKG specific)

Attack Feasibility:      run-time
Attack Vector:           remote network
Attack Impact:           denial of service

Description:
    Ralf S. Engelschall from OpenPKG GmbH discovered a Denial of Service
    (DoS) vulnerability in the CVS/Subversion/Git Version Control System
    (VCS) frontend CVSTrac [0], version 2.0.0.
    
    The vulnerability is in the Wiki-style text output formatter and is
    triggered by special text constructs in commit messages, tickets and
    Wiki pages. Only users with check-in permissions and Wiki or ticket
    edit permissions can perform an attack. But as the anonymous user
    usually is granted Wiki edit and ticket creation permissions, an
    attacker remotely and anonymously can cause a partial DoS (depending
    on the pages requested) on a CVSTrac installation by opening a new
    ticket or editing a Wiki page with an arbitrary text containing for
    instance the string "/foo/bar'quux".
    
    The DoS vulnerability exists because the is_eow() function in
    "format.c" does NOT just check the FIRST character of the supplied
    string for an End-Of-Word terminating character, but instead
    iterates over string and this way can skip a single embedded
    quotation mark. The is_repository_file() function then in turn
    assumes that the filename string can never contain a single
    quotation mark and traps into an SQL escaping problem.
    
    An SQL injection via this technique is somewhat limited as is_eow()
    bails on whitespace. So while one _can_ do an SQL injection, one is
    limited to SQL queries containing only characters which get past the
    function isspace(3). This effectively limits attacks to SQL commands
    like "VACUUM".
    
    Administrators can quickly workaround by revoking permissions on the
    users. Restoring those permissions, obviously, would require keeping
    vulnerable permissions on at least one infrequently used account
    like "setup" or using the CLI sqlite3(1) to manually add them back
    later.

References:
    [0] http://www.cvstrac.org/
____________________________________________________________________________

Primary Package Name:    cvstrac
Primary Package Home:    http://openpkg.org/go/package/cvstrac

Corrected Distribution:  Corrected Branch: Corrected Package:
OpenPKG Enterprise       E1.0-SOLID        cvstrac-2.0.0-E1.0.2
____________________________________________________________________________

For security reasons, this document was digitally signed with the
OpenPGP public key of the OpenPKG GmbH (public key id 61B7AE34)
which you can download from http://openpkg.com/openpkg.com.pgp
or retrieve from the OpenPGP keyserver at hkp://pgp.openpkg.org/.
Follow the instructions at http://openpkg.com/security/signatures/
for more details on how to verify the integrity of this document.
____________________________________________________________________________

-----BEGIN PGP SIGNATURE-----
Comment: OpenPKG GmbH <http://openpkg.com/>

iD8DBQFFvfCEZwQuyWG3rjQRApMLAJ0Q/mkpIIar3VjFoMVay7b70i5DIwCfX8lJ
6ITu0bSW6c3RR9sQ6q6cIpQ=
=kxz6
-----END PGP SIGNATURE-----