Security vulnerabilities in RT
Internal audits of the RT codebase have uncovered a number of security vulnerabilities in RT. We are releasing versions 3.8.12 and 4.0.6 to resolve these vulnerabilities, as well as patches which apply atop all released versions of 3.8 and 4.0.
The vulnerabilities addressed by 3.8.12, 4.0.6, and the below patches include the following:
The previously released tool to upgrade weak password hashes as part of
CVE-2011-0009 was an incomplete fix and failed to upgrade passwords of
disabled users. This release includes an updated version of the
vulnerable-passwords tool, which should be run again to upgrade the
remaining password hashes. CVE-2011-2082 is assigned to this
RT versions 3.0 and above are vulnerable to multiple information disclosure vulnerabilities. This includes the ability for privileged users to expose users' previous password hashes -- this vulnerability is particularly dangerous given RT's weak hashing previous to the fix in CVE-2011-0009. A separate vulnerability allows privileged users to obtain correspondence history for any ticket in RT. CVE-2011-2084 is assigned to this vulnerability.
All publicly released versions of RT are vulnerable to cross-site
request forgery (CSRF), in which a malicious website causes the browser
to make a request to RT as the currently logged in user. This attack
vector could be used for information disclosure, privilege escalation,
and arbitrary execution of code. Because some external integrations may
rely on RT's previously permissive functionality, we have included a
configuration option (
$RestrictReferrer) to disable CSRF protection. We
have also added an additional configuration parameter
$ReferrerWhitelist) to aid in exempting certain originating sites from
CSRF protections. CVE-2011-2085 is assigned to this vulnerability.
We have also added a separate configuration option
$RestrictLoginReferrer) to prevent login CSRF, a different class of
CSRF attack where the user is silently logged in using the attacker's
$RestrictLoginReferrer defaults to disabled, because this
functionality's benign usage is more commonly relied upon and presents
less of a threat vector for RT than many other types of online
RT versions 3.6.1 and above are vulnerable to a remote execution of code
vulnerability if the optional VERP configuration options (
$VERPDomain) are enabled. RT 3.8.0 and higher are vulnerable to a
limited remote execution of code which can be leveraged for privilege
escalation. RT 4.0.0 and above contain a vulnerability in the global
$DisallowExecuteCode option, allowing sufficiently privileged users to
still execute code even if RT was configured to not allow it.
CVE-2011-4458 is assigned to this set of vulnerabilities.
RT versions 3.0 and above may, under some circumstances, still respect rights that a user only has by way of a currently-disabled group. CVE-2011-4459 is assigned to this vulnerability.
RT versions 2.0 and above are vulnerable to a SQL injection attack, which allow privileged users to obtain arbitrary information from the database. CVE-2011-4460 is assigned to this vulnerability.
The README in the tarball contains instructions for applying the patches. The patches require version 0.68 or higher of FCGI.pm if you are running a FastCGI deployment. A too-low version of this module will manifest as outgoing mail failing to be sent, and errors in the logs resembling:
Could not send mail with command `[...]`: Can't locate object method "FILENO" via package "FCGI::Stream"
If you need help resolving these security issues, we will provide discounted pricing for single-incident support; please contact us at sales at bestpractical.com for more information.