SpiderLabs Blog

TWSL2013-002: Multiple XSS Vulnerabilities in The Bug Genie

Written by | May 14, 2013 1:41:00 PM

Trustwave SpiderLabs has published a new security advisory for multiple Cross-Site Scripting (XSS) vulnerabilities in The Bug Genie, an open source issue tracking and project management PHP application. The findings include both reflective and persistent XSS vulnerabilities in input parameters that can be exploited via authenticated POST requests. The Bug Genie team was contacted earlier this year regarding the security issues, and made an attempt to address them in their 3.2.5 release. Due to incomplete fixes in the 3.2.5 version, affected users are advised to upgrade to the latest stable 3.2.6 release.

Our initial security advisory was published for affected versions 3.2.4 and prior. However, a couple of weeks after the fixes were released in version 3.2.5, I revisited the application in order to confirm the fixes. I found that only two out of the five findings were correctly addressed. As a result, the remaining three findings in the 3.2.5version were still vulnerable to XSS. Multiple attempts to contact The BugGenie team regarding the following incomplete fixes were made:

  • Persistent XSS via POST request on 'description' parameter in issue reporting
  • Persistent XSS via POST request in file attachments
  • Reflective XSS via POST request on 'openid_identifier' parameter in login during pre auth

Both the 'description' and 'openid_identifier' parameters fail to sanitize user input properly. Although the 3.2.5 version of The Bug Genie applied a fix in different locations for both vulnerabilities, they failed to eliminate the issue entirely in other parts of the web application.

For example, the patch that was applied to fix the 'openid_identifier' issue sanitizes the error message "Could not validate against the OpenID provider: %message%." However, I found that the XSS vulnerability exists in a different location where the 'openid_identifier' parameter's value can be set to arbitrary JavaScript and cause the application to throw the error exception "Could not connect to $url," where $url is not sanitized. As such, the output would be "Could not connect to http://<script>prompt(1)</script>", resulting in XSS.

Therefore, I developed two patches that addressed both issues. As of this post, the supplied patches that I submitted to The Bug Genie team to help address the incomplete fixes for both vulnerabilities have been merged into their codebase. Affected users who previously upgraded to version 3.2.5 should now upgrade to the latest 3.2.6release, which contains both of my fixes.

Here are the changes that I provided:

Download: Fixopenid_identifier XSS Vulnerability


Download: Fix timeline Issues XSS Vulnerability

As a final note, the persistent XSS vulnerability that exists in the way that the application renders its content remains unfixed in the latest 3.2.6 version as well. However, the file uploading functionality in The Bug Genie is disabled by default.

Additionally, cross-site scripting vulnerabilities, such as those reported in The Bug Genie, can be mitigated by using a web application firewall (WAF), such as ModSecurity and Web Defend.