In doing the work for our Plugin Vulnerabilities service, we have seen that the security of WordPress plugins can be quite poor. We have also seen that many of the suggestions for determining if a plugin is secure or not, are not effective. For example, just because a plugin is popular or has a lot of reviews doesn’t mean it is secure, no matter how many security companies try to tell you otherwise. The only way to have a good understanding as to the security of a plugin is to have a review of its security done.
As part of our service we do security reviews of plugins selected by our customers, but for those not interested in our service, those needing to guarantee that a plugin is reviewed right away or have a plugin not included in the Plugin Directory that they want reviewed, we also offer the same type of review for a fee.
Getting a security review of a plugin you use probably makes the most sense for those with websites that are high profile and likely targeted by hackers, websites that handle sensitive data, and websites that allow the public to create WordPress accounts since many vulnerabilities exist in plugins that are only exploitable by those logged in to WordPress.
After completing the review, we will provide you with the results and attempt to work with the developer to fix any security vulnerabilities or other security issues identified. After the developer has had sufficient time to resolve those, we will publicly disclose the results.
What is Included in the Review?
With our reviews we are not reviewing every single line of code in the plugin or guaranteeing that it is free of all possible security issues, as the first part of that likely would produce poor results and the latter is unlikely to be possible to really accomplish. Instead, we focus on manually checking for specific issues determined by our years of dealing with WordPress plugin security. We check for known high risks issues, which are likely to be exploited if they are discovered based on everything we have seen over the years. We also check to make sure that the plugins are performing proper security hardening and security checks, which in addition detecting vulnerabilities that exist now, would limit other types of vulnerabilities from being exploitable if they existed, even if the relevant code is added to the plugin after the review is done. We also try to check for less serious issues that other security providers are known to falsely claim to be vulnerabilities.
The following items are checked for:
- 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 have and continued to be a common source of disclosed vulnerabilities)
- Security issues with functions accessible through WordPress’ REST API (those have started to be a source of disclosed vulnerabilities)
- Persistent cross-site scripting (XSS) vulnerabilities in the frontend portions of the plugin and in the admin portions accessible to users with the Author role or below
- Cross-site request forgery (CSRF) vulnerabilities in the admin portion of the plugin
- 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 any of the plugin’s blocks
- Security issues with functions accessible through the admin_action action
- Security issues with functions accessible through the admin_init action
- Security issues with functions accessible through the admin_post action
- Security issues with import/export functionality
- Security issues with usage of the is_admin() function
- Security issues with usage of the add_option(), delete_option(), and update_option() functions
- Security issues with usage of the update_user_meta() and wp_update_user() functions
- Security with usage of determine_current_user filter
- Security issues with usage of the wp_set_current_user(), wp_set_auth_cookie() and wc_set_customer_auth_cookie() functions
- Security issues with usage of the reset_password() and wp_set_password() functions
- Security issues with usage of the extract() function
- Lack of IP address validation
- Proper usage of sanitize_callback when using register_setting() to register settings
- Existence of register_uninstall_hook or uninstall.php file that removes any WordPress options and database tables added by the plugin
- CSV injection
- Host header injection vulnerabilities
- Lack of protection against unintended direct access of PHP files
- Insecure and unwarranted requests to third-party websites
- Any additional possible issues identified by our Plugin Security Checker
Previous Reviews of WordPress Plugins We Have Done
You can get a better idea of the quality of our reviews by looking at the results of previous reviews:
(Ordered from most recent to the oldest)
- AspireUpdate
- WP API Privacy
- Two Factor
- Download Monitor
- Profile Builder
- Open Graph
- Plugin Vulnerabilities
- Lockdown Mode
- Plugin Vulnerabilities Firewall
- Maspik – Spam blacklist
- Meta Box
- ShortPixel Image Optimizer
- Beautiful Cookie Consent Banner – Premium Add-On
- Beautiful Cookie Consent Banner
- GN Publisher
- SearchWP Live Ajax Search
- FiboSearch
- reSmush.it Image Optimizer
- Category Posts Widget
- Fast Velocity Minify
- REST API Toolbox
- Nginx Cache
- Redis Object Cache
- DW Mega Menu
- Post SMTP
- WC Duplicate Order
- Shareaholic
- Query Monitor
- WP Crontrol
- WooCommerce PDF Invoices & Packing Slips
- Cookie Notice (Cookie Notice for GDPR)
- Co-Authors Plus
- WordPress Notification Bar
- JM Twitter Cards
- Share Buttons by AddThis
- Compress JPEG & PNG images
- Classic Editor
- WP Email Delivery
- Conditional CAPTCHA
- Custom Login
- Regenerate Thumbnails
- Simple 301 Redirects
- HTTP Headers
- Amazon Web Services
- Nav Menu Roles
- wpDataTables Lite
- Archive Control
- Google XML Sitemaps
- WP-SpamShield
- Contact Form by BestWebSoft
- Really Simple SSL
- BackUpWordPress
- Google Analytics for WordPress by MonsterInsights
- Cloudflare
- Easy Digital Downloads
- Democracy Poll
- Crayon Syntax Highlighter
- WangGuard
- SSL Insecure Content Fixer
Price
Pricing is based on the amount of instances of code we need to check over and starts at US$100.
For plugins in the WordPress Plugin Directory, you can find out our price by entering the plugin’s address on the WordPress Plugin Directory (e.g. https://wordpress.org/plugins/akismet/):
We charge after the review has been completed.
Theme Reviews
We also offer security reviews of themes.
Contact Us
To order a review or if you have any questions about the service, please contact us and we will promptly get back to you.