Friday, March 25, 2011

Parallels Plesk 7.0 - 8.2 | Open URL Redirection Vulnerability

1. OVERVIEW

The Plesk versions from 7.0 to 8.2 are vulnerable to Open URL Redirection when "Enable [email protected]" access format, a new feature introduced in Plesk 7.0, is enabled in user preferences.


2. BACKGROUND

Parallels Plesk Panel is a turnkey Web hosting system that includes fully automated billing and provisioning, an integrated SiteBuilder, and access to over a hundred Web-based applications that you can use to create unique service plans that meet a variety of customer needs.


3. VULNERABILITY DESCRIPTION

The Plesk 7.0 - 8.2 versions contain a flaw that allows a remote cross site redirection attack. This flaw exists because the application does not properly parse Query String parameter to set it apart from [email protected] format  upon submission to the default web root url (/) of the affected domain (i.e www.domain.com/) . To further explain, when the URL with the format, http:[email protected], is requested, the Plesk mistakenly parses domain.com/? as a web user and attacker.com as the main domain.  This allows an attacker to create a specially crafted URL, that if clicked, would redirect a victim from the intended legitimate web site (domain.com) to an arbitrary web site (localhost) of the attacker's choice. This flaw takes place in the file, at_domains_index.html, part of the Plesk application.  Vulnerable code snippets of at_domains_index.html are as follows:

////////////////////////////////////////////////////////////////////////////////////
....
<title>Relocate</title>
<script language="javascript">
  var url = window.location.href;
  if (url.charAt(url.length - 1) != "/")
    url = url + "/";
  var s = url.indexOf("//") + 2;
  var e = url.indexOf("@");
  if (e > 0) {
    var atpart = url.substring(s, e);
    var newurl = url.substring(0, s) + url.substring(e + 1 , url.length);
    window.location = newurl + "~" + atpart + "/";
  } else {
    window.location= "/index.html";
  }
</script>
...........
////////////////////////////////////////////////////////////////////////////////////

Domains with [email protected] access format disabled are not vulnerable.


4. VERSIONS AFFECTED

 7.0 - 8.2


5. PROOF-OF-CONCEPT/EXPLOIT

http://www.victim.com/?@%61%74%74%61%63%6b%65%72%2e%69%6e
http:[email protected]


6. SOLUTION

Vendor will not release patch file for customers of affected versions.

One of the following:
  - Use Plesk 8.3 or higher 
  - Disable [email protected] access format 
  - Patch at_domains_index.html with 
	  http://yehg.net/lab/pr0js/advisories/plesk/patches/open-redirect/at_domains_index.html.zip
	  [note: extract & edit file to modify your index url]


7. VENDOR

Parallels Holdings Ltd
http://www.parallels.com/


8. CREDIT

Aung Khant, http://yehg.net, YGN Ethical Hacker Group, Myanmar.


9. DISCLOSURE TIME-LINE

2011-03-09: notified vendor though publicly available emails		
2011-03-22: no reply
2011-03-23: reported again through an email that asked feedback for using trial version of Plesk 10.x
2011-03-23: vendor confirmed that the issue is affected till the version 8.2 
2011-03-25: vulnerability disclosed


10. REFERENCES

Original Advisory URL: http://yehg.net/lab/pr0js/advisories/[plesk_7.0-8.2]_open_url_redirection
Parallels Plesk Home Page: http://www.parallels.com/products/plesk
OWASP Top 10 2010 - A 10: http://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards
SANS Top 25 - Rank 23: http://cwe.mitre.org/top25/#CWE-601
CWE-601: http://cwe.mitre.org/data/definitions/601.html

#yehg [2011-03-25]