19 Jan

WordPress Plugin Security Review: Simple 301 Redirects

For our nineteenth security review of a WordPress plugin based on the voting of our customers, we reviewed the plugin Simple 301 Redirects.

If you are not yet a customer of the service you can currently sign up for the service for half off and then start suggesting and voting on plugins to get security reviews. For those already using the service that haven’t already suggested and voted for plugins to receive a review, you can start doing that here. You can use our tool for doing limited automated security checks of plugins  (now accessible through a WordPress plugin of its own) to see if plugins you are using have possible issues that would make them good candidates to get a review. You can also order a review of a plugin separately from our service.

The review was done on version 1.07 of Simple 301 Redirects. We checked for the following issues during this review:

  • Insecure file upload handling (this is the cause of the most exploited type of vulnerability, arbitrary file upload)
  • Deserialization of untrusted data
  • Security issues with functions accessible through WordPress’ AJAX functionality (those are a common source of disclosed vulnerabilities these days)
  • Persistent cross-site scripting (XSS) vulnerabilities in publicly accessible portions of the plugin
  • Cross-site request forgery (CSRF) vulnerabilities in the admin portion of plugins
  • SQL injection vulnerabilities (the code that handles requests to the database)
  • Reflected cross-site scripting (XSS) vulnerabilities
  • Security issues with functions accessible through any of the plugin’s shortcodes
  • Security issues with functions accessible through the admin_action action
  • Security issues with functions accessible through the admin_init action
  • Security issues with import/export functionality
  • Security issues with usage of is_admin()
  • Host header injection vulnerabilities
  • Lack of protection against unintended direct access of PHP files
  • Insecure and unwarranted requests to third-party websites


We found one really minor issue.

Lack of Protection Against Direct Access to PHP Files

The only .php file in the plugin is not intended to be directly accessed but does not contain protection against direct access. When the plugin is active the file will run whenever WordPress is loading, so the lack of protection against direct access doesn’t matter. If the plugin is not active then accessing the file will cause its code to run, but it will hit fatal error before anything of importance is run, so there doesn’t look to be any security issue that could be caused by this.