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 `success_redirect_url` and `failure_redirect_url` parameters, which are used when you set up automated logging in to Plesk. The `success_redirect_url` parameter contains one or more hostnames to which a user is redirected after a successful login, while `failure_redirect_url`—after a failed login attempt or logging out.
The vulnerability can affect 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:
The `trustedRedirectHosts` line is empty and no hostnames are specified. This way you forbid Plesk from redirecting to any hostnames using the `success_redirect_url` and `failure_redirect_url` parameters.
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:
Where `hostname` is a trustworthy hostname to which you allow URL redirection via the `success_redirect_url` and `failure_redirect_url` parameters.
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 `192.0.2.1`
- Wildcard subdomains, for example `*.example.com`
Where `example.com`, `192.0.2.1`, `*.example.com` are hostnames used in the `success_redirect_url` and `failure_redirect_url` parameters.
[security]
trustedRedirectHosts =
[security]
trustedRedirectHosts = hostname
Note
When specifying hostnames in `trustedRedirectHosts`, only use the asterisk (\*) character following the pattern shown above (`*.example.com`). Otherwise, your server may remain vulnerable. For example, the hostnames `example.*` or `192.0.2.*` are insecure because they can match `example.maliciouswebsite.com` and `192.0.2.maliciouswebsite.com`, respectively.
Here is a valid example of the `trustedRedirectHosts` setting in the `panel.ini` file:
[security]
trustedRedirectHosts = example.com,192.0.2.1,*.example.com
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.