Protecting Against Open Redirect

Open redirect (also known as unvalidated redirects and forwards) is a URL redirection vulnerability. An attacker can exploit it to redirect users from a trusted to a potentially malicious third-party website and steal their credentials via a phishing attack. To protect against this vulnerability, we recommend configuring Plesk to restrict URL redirection.

The vulnerability is made possible by the failure_redirect_url parameter, which is used when you set up automated logging in to Plesk. This parameter contains one or more hostnames to which a user is redirected after performing a failed login attempt or logging out.

The vulnerability affects all Plesk servers, regardless of whether automatic logging in to Plesk has been set up or not. To protect against it, you need to add an entry to the panel.ini file. The exact entry varies depending on whether automatic logging in to Plesk has been set up.

To protect Plesk against open redirect if you have not set up automatic logging in to Plesk:

Add the following lines to the panel.ini file:

[security]
trustedRedirectHosts =

The trustedRedirectHosts line is empty and no hosts are specified. This way you forbid Plesk from redirecting to any hosts using the failure_redirect_url parameter.

To protect Plesk against open redirect if you have set up automatic logging in to Plesk:

Add an entry to the panel.ini file according to the following pattern:

[security]
trustedRedirectHosts = hostname

Where hostname is a trustworthy host to which URL redirection via the failure_redirect_url parameter will be allowed.

The trustedRedirectHosts setting accepts one or more hostnames separated by commas and specified in the following format:

  • A domain name, for example example.com
  • An IP address, for example 10.58.58.100
  • Wildcard subdomains, for example *.example.com

Note

When specifying hostnames in trustedRedirectHosts and failure_redirect_url, only use the asterisk (*) character following the pattern shown above (*.example.com). Otherwise, your server may remain vulnerable. For example, the hostnames example.* or 203.0.113.* are insecure as they can match example.maliciouswebsite.com and 203.0.113.maliciouswebsite.com, respectively.

Here is a valid example of the trustedRedirectHosts setting in the panel.ini file:

[security]
trustedRedirectHosts = example.com,10.58.58.100,*.example.com

Where example.com, 10.58.58.100, *.example.com are hostnames used in the failure_redirect_url parameter.

Note

When specifying several hostnames in trustedRedirectHosts, do not add the whitespace ( ) character before or after the comma (,) that separates hostnames. Otherwise, the hostname will not be handled correctly and URL redirection will fail.