Version Locker
Version Locker is an update manager that lets you disable automatic updates in WordPress and keep any plugin, theme, or WordPress core itself on the version you are running today. Turn off updates for one plugin, for every plugin at once, for themes, or for WordPress core. Once something is locked it will not update automatically, and the one-click update button is withheld until you unlock it. Every switch is reversible in one click. Stop Automatic Updates, Without Losing Track of Them Most plugins that disable updates simply hide them, and six months later you have no idea how far behind you are. Version Locker still shows you the update it is holding, including the new version number and whether it is a major, minor, or patch release. You can add a note explaining why something is pinned, and set a date for the lock to release itself. Downgrade WordPress Core to a Specific Version Pick the release you want and Version Locker offers it under Dashboard > Updates. Nothing is installed until you start it there yourself, and once the site is on that release, further core updates are held back. You can downgrade WordPress to an earlier version, or hold WordPress on the version you have tested, without editing files over FTP or hunting for an old ZIP. Only releases published on WordPress.org are offered, and the package always comes from WordPress.org in your site’s own language. Going backwards across a major version has to be confirmed first, because WordPress upgrades the database as it goes and cannot migrate it back. Who This Is For Agencies and freelancers managing client sites. Anyone running a customized or patched plugin. Production and eCommerce sites that update on a schedule. Sites on older PHP or an older WordPress version. What It Does Lock an individual plugin or theme at the version it is on, including against another admin who tries to update it. Turn off all plugin updates, all theme updates, or core updates with one switch, so you can freeze a whole site before a migration, an audit, or a busy trading period. Roll back a plugin or theme to any earlier version still published on WordPress.org, from inside your dashboard. No FTP, no hunting for old ZIP files. Downgrade WordPress core to a specific version, or hold it on the one you have tested. Hold new releases for a set number of days before WordPress offers or installs them. Let other people find the bugs first. It only ever delays an update, it never starts one. Block new plugin and theme installs, including ZIP uploads. Lock anything you newly install, automatically. Save your locks and settings to a file and load them on another site. You see exactly what will change before anything is applied. See the version each item is pinned at and how far behind you have fallen, major, minor, or patch, with an “update available” indicator that does not bring the update button back. Add a note to any lock, and set it to unlock itself on a date. Lock and unlock without a page reload, in bulk, with search and filtering across your plugins and themes. Activity log showing who changed what and when, with CSV export. Works on Multisite. How It Works Version Locker uses WordPress filters to hide update notices and refuse update attempts. Locking never touches your files: nothing is added, changed, or removed on disk. The one exception is Roll Back, which only runs when you ask for it. It downloads the version you pick from WordPress.org and replaces the installed files, exactly as a normal update would. You are warned and asked to confirm first. No account, no API key, no external service. Nothing is sent anywhere.
WPVulnerability
This plugin integrates with the WPVulnerability API to provide real-time vulnerability assessments for your WordPress core, plugins, themes, PHP version, Apache HTTPD, nginx, MariaDB, MySQL, ImageMagick, curl, memcached, Redis, and SQLite. It delivers detailed reports directly within your WordPress dashboard, helping you stay aware of potential security risks. Configure the plugin to send periodic notifications about your site’s security status, ensuring you remain informed without being overwhelmed. Designed for ease of use, it supports proactive security measures without storing or retrieving any personal data from your site. Data reliability The information provided by the information database comes from different sources that have been reviewed by third parties. There is no liability of any kind for the information. Act at your own risk. Using the plugin WP-CLI You can use the following WP-CLI commands to manage and check vulnerabilities: Core: wp wpvulnerability core Plugins: wp wpvulnerability plugins Themes: wp wpvulnerability themes PHP: wp wpvulnerability php Apache HTTPD: wp wpvulnerability apache nginx: wp wpvulnerability nginx MariaDB: wp wpvulnerability mariadb MySQL: wp wpvulnerability mysql ImageMagick: wp wpvulnerability imagemagick curl: wp wpvulnerability curl memcached: wp wpvulnerability memcached Redis: wp wpvulnerability redis SQLite: wp wpvulnerability sqlite To configure the plugin you can use: Hide component: wp wpvulnerability config hide [on|off] Notification email: wp wpvulnerability config email (comma separatted) Notification period: wp wpvulnerability config period Log retention: wp wpvulnerability config log-retention (in days) Cache duration: wp wpvulnerability config cache (in hours) All commands support the --format option to specify the output format: --format=table: Displays the results in a table format (default). --format=json: Displays the results in JSON format. Need help? wp wpvulnerability --help: Displays help information for WPVulnerability commands. wp wpvulnerability [command] --help: Displays help information for a WPVulnerability command. REST API The WPVulnerability plugin provides several REST API endpoints to fetch vulnerability information for different components of your WordPress site. Core: /wpvulnerability/v1/core Plugins: /wpvulnerability/v1/plugins Themes: /wpvulnerability/v1/themes PHP: /wpvulnerability/v1/php Apache HTTPD: /wpvulnerability/v1/apache nginx: /wpvulnerability/v1/nginx MariaDB: /wpvulnerability/v1/mariadb MySQL: /wpvulnerability/v1/mysql ImageMagick: /wpvulnerability/v1/imagemagick curl: /wpvulnerability/v1/curl memcached: /wpvulnerability/v1/memcached Redis: /wpvulnerability/v1/redis SQLite: /wpvulnerability/v1/sqlite The WPVulnerability REST API uses Application Passwords for authentication. You need to include a valid Application Password in the Authorization header of your requests. Example Request with Authentication curl -X GET https://example.com/wp-json/wpvulnerability/v1/plugins -u username:application_password Replace username with your WordPress username and application_password with your Application Password. Extra Configurations “From:” mail (since: 3.2.2) If, for some reason, you need the emails sent by the plugin to have a From different from the site administrator, you can change it from the wp-config.php by adding a constant: define( 'WPVULNERABILITY_MAIL', 'sender@example.com' ); If the constant is active, it will be visible in the configuration screen. Force hiding checks (since: 4.1.0) If you want to always hide a specific component, you can define a constant in wp-config.php. When set to true, the option will be checked automatically in the settings screen and the related analysis will be skipped. Example: define( 'WPVULNERABILITY_HIDE_APACHE', true ); Available constants: WPVULNERABILITY_HIDE_CORE, WPVULNERABILITY_HIDE_PLUGINS, WPVULNERABILITY_HIDE_THEMES, WPVULNERABILITY_HIDE_PHP, WPVULNERABILITY_HIDE_APACHE, WPVULNERABILITY_HIDE_NGINX, WPVULNERABILITY_HIDE_MARIADB, WPVULNERABILITY_HIDE_MYSQL, WPVULNERABILITY_HIDE_IMAGEMAGICK, WPVULNERABILITY_HIDE_CURL, WPVULNERABILITY_HIDE_MEMCACHED, WPVULNERABILITY_HIDE_REDIS, WPVULNERABILITY_HIDE_SQLITE. Cache duration (since: 4.1.0) By default, data from the API is cached for 12 hours. To change this, define WPVULNERABILITY_CACHE_HOURS in wp-config.php with one of 1, 6, 12 or 24. This value overrides the setting screen and WP-CLI command. define( 'WPVULNERABILITY_CACHE_HOURS', 24 ); Log rotation (since: 4.2.0) WPVulnerability stores the most recent API responses so you can review recent calls from the new log tab. Define WPVULNERABILITY_LOG_RETENTION_DAYS in wp-config.php to control how many days of entries are preserved. Supported values are 0, 1, 7, 14 or 28; using 0 disables logging entirely. define( 'WPVULNERABILITY_LOG_RETENTION_DAYS', 14 ); When the constant is present its value is enforced in the settings UI and through WP-CLI, ensuring consistent log rotation across environments. Security configuration (since: 4.3.0) WPVulnerability uses a hybrid detection approach for server software (ImageMagick, Redis, Memcached, SQLite): PHP extensions first (most secure), then shell commands as fallback (most accurate). You can control this behavior using security configuration constants in wp-config.php. Global disable of shell commands: define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true ); Completely disables shell command usage. Falls back to PHP extensions only. Use for maximum security when accuracy loss is acceptable. Security mode (standard/strict/disabled): define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' ); standard – Hybrid detection: PHP extensions first, shell commands fallback (default, best accuracy) strict – PHP extensions only, no shell commands (high security, lower accuracy) disabled – No software detection at all (maximum security) Component whitelist: define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick,redis' ); Allows shell commands only for specified components. Available components: imagemagick, redis, memcached, sqlite. Use for granular control. Examples: Maximum security (no shell commands): define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' ); Only allow ImageMagick shell detection: define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick' ); Complete disable: define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true ); All shell commands are hardcoded and validated – no user input is involved. Commands are logged for security auditing. Compatibility WordPress: 4.7 – 7.1 PHP: 7.0 – 8.5 WP-CLI: 2.3.0 – 2.12.0 Security This plugin adheres to the following security measures and review protocols for each version: WordPress Plugin Handbook WordPress Plugin Security WordPress APIs Security WordPress Coding Standards Plugin Check (PCP) Privacy This plugin or the WordPress Vulnerability Database API does not collect any information about your site, your identity, the plugins, themes or content the site has. Vulnerabilities A security vulnerability was found and fixed in version 4.2.2.1. All previous versions (3.3.0 – 4.2.1) are affected. Please update to version 4.2.2.1 or later. Found a security vulnerability? Please report it to us privately at ROBOTSTXT. Contributors You can contribute to this plugin at the WPVulnerability repository.