Support Incident Tracker <= 3.65 (translate.php) Remote Code Execution Vulnerability

2011-11-27T00:00:00
ID SECURITYVULNS:DOC:27369
Type securityvulns
Reporter Securityvulns
Modified 2011-11-27T00:00:00

Description

Support Incident Tracker <= 3.65 (translate.php) Remote Code Execution Vulnerability

author...............: Egidio Romano aka EgiX mail.................: n0b0d13s[at]gmail[dot]com software link........: http://sitracker.org/ affected versions....: from 3.45 to 3.65

[-] vulnerable code in /translate.php

  1. foreach (array_keys($_POST) as $key)
  2. {
  3. if (!empty($_POST[$key]) AND substr($key, 0, 3) == "str")
  4. {
  5. if ($lastchar!='' AND substr($key, 3, 1) != $lastchar) $i18nfile .= "\n";
  6. $i18nfile .= "\${$key} = '".addslashes($_POST[$key])."';\n";
  7. $lastchar = substr($key, 3, 1);
  8. $translatedcount++;
  9. }
  10. }

Input passed via keys of $_POST array isn't properly sanitized before being stored into $i18nfile variable at line 239, that variable will be the contents of a language file stored into 'i18n' directory with a php extension. This could allow authenticated users to inject and execute arbitrary PHP code. Furthermore, access directly to /translate.php?mode=save will reveal the full installation path of the application.

[-] Disclosure timeline:

[13/11/2011] - Vulnerability discovered [13/11/2011] - Issue reported to http://bugs.sitracker.org/view.php?id=1737 [13/11/2011] - Vendor replied that this issue is fixed in the current SVN trunk [19/11/2011] - Public disclosure

[-] Proof of concept:

http://www.exploit-db.com/exploits/18132