WP Umbrella: Update Backup Restore & Monitoring Security & Risk Analysis

wordpress.org/plugins/wp-health

Everything you need to sell WordPress maintenance and manage multiple sites effortlessly: backup, update, uptime monitoring, and security.

60K active installs v2.22.0 PHP 7.4+ WP 5.8+ Updated Mar 11, 2026
backupbackupsmonitoringrestoreupdate
97
A · Safe
CVEs total1
Unpatched0
Last CVEDec 7, 2024
Download
Safety Verdict

Is WP Umbrella: Update Backup Restore & Monitoring Safe to Use in 2026?

Generally Safe

Score 97/100

WP Umbrella: Update Backup Restore & Monitoring has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Dec 7, 2024Updated 23d ago
Risk Assessment

The wp-health plugin version 2.22.0 exhibits a mixed security posture. While it demonstrates good practices in areas like using prepared statements for a significant portion of its SQL queries and properly escaping most output, several concerning indicators are present. The presence of 14 AJAX handlers, with one lacking any authentication checks, represents a direct and accessible attack surface. Furthermore, the taint analysis reveals three high-severity flows with unsanitized paths, indicating potential for unauthorized data access or manipulation. The plugin's vulnerability history, including a past critical vulnerability classified as PHP Remote File Inclusion, is a significant concern, suggesting a tendency towards exploitable weaknesses in file handling. Although there are no currently unpatched vulnerabilities, the pattern of past critical issues and the static analysis findings warrant caution.

In conclusion, while the plugin has strengths in data handling and output sanitization, the unsecured AJAX endpoint, high-severity taint flows, and historical critical vulnerabilities collectively present a notable risk. This requires careful consideration and mitigation, particularly given the potential for file inclusion or similar attacks given its past history. Users should be aware of these potential weaknesses.

Key Concerns

  • AJAX handler without authentication
  • High severity taint flows with unsanitized paths
  • Previous critical vulnerability (RFI)
  • Use of dangerous functions (unserialize, exec, proc_open)
Vulnerabilities
1

WP Umbrella: Update Backup Restore & Monitoring Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

Critical
1

1 total CVE

CVE-2024-12209critical · 9.8Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')

WP Umbrella: Update Backup Restore & Monitoring <= 2.17.0 - Unauthenticated Local File Inclusion

Dec 7, 2024 Patched in 2.17.1 (1d)
Code Analysis
Analyzed Mar 16, 2026

WP Umbrella: Update Backup Restore & Monitoring Code Analysis

Dangerous Functions
8
Raw SQL Queries
40
119 prepared
Unescaped Output
26
131 escaped
Nonce Checks
16
Capability Checks
14
File Operations
117
External Requests
26
Bundled Libraries
0

Dangerous Functions Found

unserialize$licenseData = @unserialize(@base64_decode($licenseKey));src\Services\License\Detectors\AcfProLicenseDetector.php:32
unserialize$schedule = unserialize( $data->schedule ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.sethirds\action-scheduler\classes\data-stores\ActionScheduler_DBStore.php:369
execif ($php = strtok(exec($command.' '.escapeshellarg($php)), \PHP_EOL)) {vendor-scoped\Dependencies\Symfony\Component\Process\PhpExecutableFinder.php:39
proc_open$this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envvendor-scoped\Dependencies\Symfony\Component\Process\Process.php:352
proc_open$isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/vendor-scoped\Dependencies\Symfony\Component\Process\Process.php:1260
proc_openreturn $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes);vendor-scoped\Dependencies\Symfony\Component\Process\Process.php:1283
execexec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode);vendor-scoped\Dependencies\Symfony\Component\Process\Process.php:1509
proc_open} elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {vendor-scoped\Dependencies\Symfony\Component\Process\Process.php:1522

SQL Query Safety

75% prepared159 total queries

Output Escaping

83% escaped157 total outputs
Data Flows
6 unsanitized

Data Flow Analysis

7 flows6 with unsanitized paths
display_table (thirds\action-scheduler\classes\abstracts\ActionScheduler_Abstract_ListTable.php:736)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

WP Umbrella: Update Backup Restore & Monitoring Attack Surface

Entry Points14
Unprotected1

AJAX Handlers 14

authwp_ajax_wp_umbrella_allow_one_click_accesssrc\Actions\Admin\Ajax\AllowOneClickAccess.php:12
authwp_ajax_wp_umbrella_disallow_one_click_accesssrc\Actions\Admin\Ajax\AllowOneClickAccess.php:13
authwp_ajax_wp_health_allow_trackingsrc\Actions\Admin\Ajax\AllowTracking.php:10
authwp_ajax_wp_health_disallow_trackingsrc\Actions\Admin\Ajax\AllowTracking.php:11
authwp_ajax_wp_health_proxysrc\Actions\Admin\Ajax\Proxy.php:19
authwp_ajax_wp_umbrella_registersrc\Actions\Admin\Ajax\Register.php:17
authwp_ajax_wp_health_loginsrc\Actions\Admin\Ajax\Register.php:18
authwp_ajax_wp_umbrella_valid_api_keysrc\Actions\Admin\Ajax\ValidationApiKey.php:21
authwp_ajax_wp_umbrella_check_api_keysrc\Actions\Admin\Ajax\ValidationApiKey.php:22
noprivwp_ajax_umbrella_scantestsrc\Actions\ScanTestAjax.php:10
authwp_ajax_wp_umbrella_snapshot_datasrc\Core\Kernel.php:440
noprivwp_ajax_wp_umbrella_snapshot_datasrc\Core\Kernel.php:441
authwp_ajax_wp_umbrella_update_admin_requestsrc\Core\Kernel.php:443
noprivwp_ajax_wp_umbrella_update_admin_requestsrc\Core\Kernel.php:444
WordPress Hooks 151
actionadmin_enqueue_scriptssrc\Actions\Admin\Enqueue.php:14
actionadmin_enqueue_scriptssrc\Actions\Admin\Enqueue.php:15
filteradmin_body_classsrc\Actions\Admin\Enqueue.php:16
actionadmin_noticessrc\Actions\Admin\Notices\NoConfiguration.php:14
actionadmin_initsrc\Actions\Admin\Option.php:21
actionadmin_post_wp_umbrella_support_optionsrc\Actions\Admin\Option.php:22
actionadmin_post_wp_umbrella_regenerate_secret_tokensrc\Actions\Admin\Option.php:23
actionadmin_menusrc\Actions\Admin\Pages.php:25
actionadmin_enqueue_scriptssrc\Actions\Admin\Pages.php:26
actionadmin_noticessrc\Actions\Admin\PrepareErrorHandler.php:34
actionadmin_noticessrc\Actions\Admin\PrepareErrorHandler.php:48
actionadmin_noticessrc\Actions\Admin\PrepareErrorHandler.php:53
actionadmin_post_wp_umbrella_reset_backupsrc\Actions\Admin\ResetBackup.php:13
filterplugin_action_linkssrc\Actions\Admin\WhiteLabel.php:20
filterall_pluginssrc\Actions\Admin\WhiteLabel.php:21
filterplugin_row_metasrc\Actions\Admin\WhiteLabel.php:22
actionadmin_enqueue_scriptssrc\Actions\Admin\WhiteLabel.php:23
actionrest_api_initsrc\Actions\Api\Bootstrap.php:13
actioninitsrc\Actions\AutoInstallByConstant.php:21
actioninitsrc\Actions\BackupRouter.php:11
actiontemplate_redirectsrc\Actions\BackupRouter.php:12
actioninitsrc\Actions\BrokenLinkChecker\CollectLinks.php:35
filterfinal_outputsrc\Actions\BrokenLinkChecker\CollectLinks.php:53
actionadmin_initsrc\Actions\BrokenLinkChecker\ScheduleLinkSending.php:14
actionwp_footersrc\Actions\IntegrityTag.php:10
actionadmin_initsrc\Actions\Migration.php:10
actioninitsrc\Actions\RestoreRouter.php:11
actiontemplate_redirectsrc\Actions\RestoreRouter.php:12
actionwp_ajaxv_umbrella_scantestsrc\Actions\ScanTestAjax.php:11
actionadmin_initsrc\Actions\TrackingError.php:11
actionupgrader_package_optionssrc\Actions\UpgradeProcessComplete.php:11
actionupgrader_process_completesrc\Actions\UpgradeProcessComplete.php:12
actioncore_upgrade_preamblesrc\Actions\UpgradeProcessComplete.php:13
actionaction_wp_umbrella_send_errors_v2src\Async\ActionSchedulerSendErrors.php:77
actionaction_wp_umbrella_send_linkssrc\Async\ActionSchedulerSendLinks.php:5
filteroption_admin_site_enhancementssrc\Core\Kernel.php:326
filterqm/dispatch/htmlsrc\Core\Kernel.php:332
filterqm/dispatch/ajaxsrc\Core\Kernel.php:333
filterqm/dispatch/redirectsrc\Core\Kernel.php:334
filterqm/dispatch/restsrc\Core\Kernel.php:335
filterqm/dispatch/wp_diesrc\Core\Kernel.php:336
actionplugins_loadedsrc\Core\Kernel.php:341
filterdeprecated_function_trigger_errorsrc\Core\Kernel.php:410
actionwp_loadedsrc\Core\Kernel.php:420
actionwpsrc\Core\Kernel.php:425
actionplugins_loadedsrc\Core\Kernel.php:446
filterupgrader_pre_installsrc\Models\PluginUpgrader.php:24
filterupgrader_clear_destinationsrc\Models\PluginUpgrader.php:25
filterhttps_ssl_verifysrc\Services\Api\Backup.php:58
filterhttps_ssl_verifysrc\Services\Api\Processes.php:40
filterhttps_ssl_verifysrc\Services\Api\Projects.php:16
filterhttps_ssl_verifysrc\Services\Api\Projects.php:38
actionautomatic_updates_completesrc\Services\Core\Update.php:120
filterauto_update_coresrc\Services\Core\Update.php:122
filterallow_major_auto_core_updatessrc\Services\Core\Update.php:123
filterallow_minor_auto_core_updatessrc\Services\Core\Update.php:124
filterauto_core_update_send_emailsrc\Services\Core\Update.php:125
filterauto_update_coresrc\Services\Core\Update.php:126
filterauto_update_themesrc\Services\Core\Update.php:127
filterauto_update_pluginsrc\Services\Core\Update.php:128
filterupgrader_package_optionssrc\Services\Plugin\Install.php:30
filterwp_redirectsrc\Services\RequestSettings.php:121
filterauto_update_coresrc\Services\RequestSettings.php:128
filterauto_update_themesrc\Services\RequestSettings.php:129
filterthemes_auto_update_enabledsrc\Services\RequestSettings.php:130
filterauto_update_pluginsrc\Services\RequestSettings.php:132
filterplugins_auto_update_enabledsrc\Services\RequestSettings.php:133
filterauto_update_translationsrc\Services\RequestSettings.php:135
filterautomatic_updater_disabledsrc\Services\RequestSettings.php:136
filterhttp_responsesrc\Services\RequestSettings.php:169
filterpre_http_requestsrc\Services\RequestSettings.php:170
actionplugins_loadedthirds\action-scheduler\action-scheduler.php:36
actionplugins_loadedthirds\action-scheduler\action-scheduler.php:39
actioninitthirds\action-scheduler\classes\abstracts\ActionScheduler.php:152
actioninitthirds\action-scheduler\classes\abstracts\ActionScheduler.php:153
actioninitthirds\action-scheduler\classes\abstracts\ActionScheduler.php:154
actioninitthirds\action-scheduler\classes\abstracts\ActionScheduler.php:155
actioninitthirds\action-scheduler\classes\abstracts\ActionScheduler.php:157
actionaction_scheduler/migration_completethirds\action-scheduler\classes\abstracts\ActionScheduler.php:213
actionaction_scheduler_canceled_actionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:50
actionaction_scheduler_begin_executethirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:51
actionaction_scheduler_after_executethirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:52
actionaction_scheduler_failed_executionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:53
actionaction_scheduler_failed_actionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:54
actionaction_scheduler_unexpected_shutdownthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:55
actionaction_scheduler_reset_actionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:56
actionaction_scheduler_execution_ignoredthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:57
actionaction_scheduler_failed_fetch_actionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:58
actionaction_scheduler_failed_to_schedule_next_instancethirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:59
actionaction_scheduler_bulk_cancel_actionsthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:60
actionaction_scheduler_stored_actionthirds\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:64
actionwoocommerce_admin_status_content_action-schedulerthirds\action-scheduler\classes\ActionScheduler_AdminView.php:37
actionwoocommerce_system_status_reportthirds\action-scheduler\classes\ActionScheduler_AdminView.php:38
filterwoocommerce_admin_status_tabsthirds\action-scheduler\classes\ActionScheduler_AdminView.php:39
actionadmin_menuthirds\action-scheduler\classes\ActionScheduler_AdminView.php:42
actionadmin_noticesthirds\action-scheduler\classes\ActionScheduler_AdminView.php:43
actioncurrent_screenthirds\action-scheduler\classes\ActionScheduler_AdminView.php:44
filteraction_scheduler_store_classthirds\action-scheduler\classes\ActionScheduler_DataController.php:167
filteraction_scheduler_logger_classthirds\action-scheduler\classes\ActionScheduler_DataController.php:168
actiondeactivate_pluginthirds\action-scheduler\classes\ActionScheduler_DataController.php:169
actionaction_scheduler/progress_tickthirds\action-scheduler\classes\ActionScheduler_DataController.php:174
actionshutdownthirds\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:19
actionaction_scheduler_before_executethirds\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:20
actionaction_scheduler_after_executethirds\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:21
actionaction_scheduler_execution_ignoredthirds\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:22
actionaction_scheduler_failed_executionthirds\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:23
actionaction_scheduler/created_tablethirds\action-scheduler\classes\ActionScheduler_ListTable.php:551
filtercron_schedulesthirds\action-scheduler\classes\ActionScheduler_QueueRunner.php:54
actionshutdownthirds\action-scheduler\classes\ActionScheduler_QueueRunner.php:77
actionpre_get_commentsthirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:44
actionwp_count_commentsthirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:45
actioncomment_feed_wherethirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:46
actionload-tools_page_action-schedulerthirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:49
actionload-woocommerce_page_wc-statusthirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:50
actionadmin_noticesthirds\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:91
actionaction_scheduler_deleted_actionthirds\action-scheduler\classes\data-stores\ActionScheduler_DBLogger.php:112
actionaction_scheduler/created_tablethirds\action-scheduler\classes\data-stores\ActionScheduler_HybridStore.php:56
filtercomments_clausesthirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:102
actionaction_scheduler_before_process_queuethirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:219
actionaction_scheduler_after_process_queuethirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:220
actionpre_get_commentsthirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:224
actionwp_count_commentsthirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:225
actioncomment_feed_wherethirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:226
actionwp_insert_commentthirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:229
actionwp_set_comment_statusthirds\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:230
filterwp_insert_post_datathirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:81
filterpre_wp_unique_post_slugthirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:82
filterpre_wp_unique_post_slugthirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:518
filterwp_insert_post_datathirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:989
filterpre_wp_unique_post_slugthirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:990
filteraction_scheduler_migration_dependencies_metthirds\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:1077
actionadmin_noticesthirds\action-scheduler\classes\migration\Controller.php:155
filteraction_scheduler_store_classthirds\action-scheduler\classes\migration\Controller.php:169
filteraction_scheduler_logger_classthirds\action-scheduler\classes\migration\Controller.php:170
actioninitthirds\action-scheduler\classes\migration\Controller.php:171
actionwp_loadedthirds\action-scheduler\classes\migration\Controller.php:172
actionload-tools_page_action-schedulerthirds\action-scheduler\classes\migration\Controller.php:175
actionload-woocommerce_page_wc-statusthirds\action-scheduler\classes\migration\Controller.php:176
actionaction_scheduler_before_schema_updatethirds\action-scheduler\classes\schema\ActionScheduler_LoggerSchema.php:28
actionaction_scheduler_before_schema_updatethirds\action-scheduler\classes\schema\ActionScheduler_StoreSchema.php:33
actionaction_scheduler_before_executethirds\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:79
actionaction_scheduler_after_executethirds\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:80
actionaction_scheduler_failed_executionthirds\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:81
actionaction_scheduler/migrate_action_dry_runthirds\action-scheduler\classes\WP_CLI\Migration_Command.php:126
actionaction_scheduler/no_action_to_migratethirds\action-scheduler\classes\WP_CLI\Migration_Command.php:129
actionaction_scheduler/migrate_action_failedthirds\action-scheduler\classes\WP_CLI\Migration_Command.php:132
actionaction_scheduler/migrate_action_incompletethirds\action-scheduler\classes\WP_CLI\Migration_Command.php:135
actionaction_scheduler/migrated_actionthirds\action-scheduler\classes\WP_CLI\Migration_Command.php:138
actionaction_scheduler/migration_batch_startingthirds\action-scheduler\classes\WP_CLI\Migration_Command.php:141
actionaction_scheduler/migration_batch_completethirds\action-scheduler\classes\WP_CLI\Migration_Command.php:144
actionadmin_noticeswp-umbrella-functions.php:72
Maintenance & Trust

WP Umbrella: Update Backup Restore & Monitoring Maintenance & Trust

Maintenance Signals

WordPress version tested7.0
Last updatedMar 11, 2026
PHP min version7.4
Downloads1.1M

Community Trust

Rating94/100
Number of ratings61
Active installs60K
Developer Profile

WP Umbrella: Update Backup Restore & Monitoring Developer Profile

WP Umbrella - Backup WordPress

1 plugin · 60K total installs

98
trust score
Avg Security Score
97/100
Avg Patch Time
1 days
View full developer profile
Detection Fingerprints

How We Detect WP Umbrella: Update Backup Restore & Monitoring

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-health/app/styles/sweetalert.css/wp-content/plugins/wp-health/dist/style.css/wp-content/plugins/wp-health/dist/app.js/wp-content/plugins/wp-health/dist/vendors.js
Script Paths
/wp-content/plugins/wp-health/dist/app.js/wp-content/plugins/wp-health/dist/vendors.js
Version Parameters
wp-health/dist/style.css?ver=wp-health/dist/app.js?ver=wp-health/dist/vendors.js?ver=

HTML / DOM Fingerprints

CSS Classes
wp-umbrella-styles
Data Attributes
data-urldata-noncedata-plugin-versiondata-current-versiondata-next-update-urldata-plugin-slug+8 more
JS Globals
WPUMBRELLA_URLWPUMBRELLA_URL_DISTWPUMBRELLA_DIRURLWPUMBRELLA_VERSIONWPUMBRELLA_DEBUGWP_UMBRELLA_URL+5 more
REST Endpoints
/wp-json/wp-umbrella/v1/logs/wp-json/wp-umbrella/v1/error_logs/wp-json/wp-umbrella/v1/uptime/wp-json/wp-umbrella/v1/check-update/wp-json/wp-umbrella/v1/sync/wp-json/wp-umbrella/v1/plugin-update/wp-json/wp-umbrella/v1/theme-update/wp-json/wp-umbrella/v1/site-health-check/wp-json/wp-umbrella/v1/backup/wp-json/wp-umbrella/v1/cancel-backup/wp-json/wp-umbrella/v1/restore-backup/wp-json/wp-umbrella/v1/get-backups/wp-json/wp-umbrella/v1/delete-backup/wp-json/wp-umbrella/v1/download-backup/wp-json/wp-umbrella/v1/schedule-backup/wp-json/wp-umbrella/v1/site-meta/wp-json/wp-umbrella/v1/site-options/wp-json/wp-umbrella/v1/get-site-option/wp-json/wp-umbrella/v1/delete-site-option/wp-json/wp-umbrella/v1/update-site-option/wp-json/wp-umbrella/v1/get-options/wp-json/wp-umbrella/v1/update-option/wp-json/wp-umbrella/v1/plugins/wp-json/wp-umbrella/v1/themes/wp-json/wp-umbrella/v1/users/wp-json/wp-umbrella/v1/check-ssl/wp-json/wp-umbrella/v1/update-settings/wp-json/wp-umbrella/v1/regenerate-api-key/wp-json/wp-umbrella/v1/delete-api-key/wp-json/wp-umbrella/v1/regenerate-log-file/wp-json/wp-umbrella/v1/get-log-file/wp-json/wp-umbrella/v1/delete-log-file/wp-json/wp-umbrella/v1/restore-default-settings/wp-json/wp-umbrella/v1/reset-cache/wp-json/wp-umbrella/v1/maintenance-mode/wp-json/wp-umbrella/v1/send-test-email
FAQ

Frequently Asked Questions about WP Umbrella: Update Backup Restore & Monitoring