JetBackup – Backup, Restore & Migrate Security & Risk Analysis

wordpress.org/plugins/backup

Backup, restore, and migrate WordPress sites fast. Supports TAR, remote backups, multi schedules, and full multisite compatibility.

100K active installs v3.1.19.8 PHP 7.4+ WP 6.0+ Updated Mar 1, 2026
backupremote-backuprestore
95
A · Safe
CVEs total9
Unpatched0
Last CVEFeb 2, 2024
Safety Verdict

Is JetBackup – Backup, Restore & Migrate Safe to Use in 2026?

Generally Safe

Score 95/100

JetBackup – Backup, Restore & Migrate has a strong security track record. Known vulnerabilities have been patched promptly.

9 known CVEsLast CVE: Feb 2, 2024Updated 1mo ago
Risk Assessment

This plugin exhibits a mixed security posture, with several positive indicators but also significant areas of concern. The code analysis reveals a substantial attack surface with two AJAX handlers, both lacking authentication checks. This is a critical weakness, as it allows any unauthenticated user to potentially trigger these handlers, leading to unauthorized actions. While the plugin demonstrates good practices in other areas, such as a high percentage of prepared statements for SQL queries and properly escaped output, the unprotected entry points are a glaring vulnerability. The taint analysis shows no critical or high severity flows with unsanitized paths, which is a positive sign. However, the presence of dangerous functions like `unserialize`, `exec`, and `shell_exec`, even if not currently exploited in taint flows, indicates potential for future severe vulnerabilities if input is not meticulously handled. The plugin's vulnerability history is concerning, with a total of 9 known CVEs, including a past critical vulnerability. The common types of vulnerabilities like XSS, unrestricted uploads, exposure of sensitive information, and missing authorization highlight a recurring pattern of security flaws. While there are currently no unpatched CVEs, the history suggests a tendency to develop vulnerabilities that require patches.

Key Concerns

  • Unprotected AJAX handlers
  • Use of dangerous functions (unserialize, exec, shell_exec)
  • History of 9 known CVEs
  • Past critical CVE
  • History of high severity CVEs
  • History of medium severity CVEs
  • Missing authorization vulnerability history
  • Cross-Site Request Forgery vulnerability history
  • Unrestricted upload vulnerability history
  • Exposure of sensitive information vulnerability history
  • Cross-site Scripting vulnerability history
Vulnerabilities
9

JetBackup – Backup, Restore & Migrate Security Vulnerabilities

CVEs by Year

1 CVE in 2016
2016
2 CVEs in 2017
2017
3 CVEs in 2020
2020
1 CVE in 2021
2021
1 CVE in 2022
2022
1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

Critical
1
High
3
Medium
5

9 total CVEs

CVE-2023-7165critical · 9.8Exposure of Sensitive Information to an Unauthorized Actor

JetBackup <= 2.0.9.7 - Sensitive Information Exposure via Directory Listing

Feb 2, 2024 Patched in 2.0.9.9 (6d)
CVE-2022-34148medium · 5.5Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Backup Guard <= 1.6.9 - Authenticated (Administrator+) Stored Cross-Site Scripting

Oct 27, 2022 Patched in 1.6.9.1 (453d)
CVE-2021-24155high · 7.2Unrestricted Upload of File with Dangerous Type

Backup Guard <= 1.5.9 - Authenticated Arbitrary File Upload

Feb 18, 2021 Patched in 1.6.0 (1069d)
CVE-2020-36668medium · 4.3Exposure of Sensitive Information to an Unauthorized Actor

JetBackup – WP Backup, Migrate & Restore <= 1.4.0 - Sensitive Information Disclosure

Jul 30, 2020 Patched in 1.4.1 (1272d)
CVE-2020-36667medium · 5.4Missing Authorization

JetBackup – WP Backup, Migrate & Restore <= 1.4.1 - Missing Authorization to Unauthorized Backup Location Change

Jul 30, 2020 Patched in 1.4.1 (1272d)
CVE-2020-36669high · 8.8Cross-Site Request Forgery (CSRF)

JetBackup – WP Backup, Migrate & Restore <= 1.3.9 - Cross-Site Request Forgery to Arbitrary File Upload

Jul 16, 2020 Patched in 1.4.0 (1286d)
CVE-2017-10837medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

BackupGuard <= 1.1.46 - Reflected Cross-Site Scripting

Aug 24, 2017 Patched in 1.1.47 (2343d)
CVE-2017-18488medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Backup Guard <= 1.1.46 - Cross-Site Scripting

Aug 11, 2017 Patched in 1.1.47 (2356d)
WF-7ee267ff-b650-44a5-994b-3a22d34722e8-backuphigh · 8.8Unrestricted Upload of File with Dangerous Type

WordPress Backup and Migrate Plugin – Backup Guard < 1.0.3 - Arbitrary File Upload

Feb 15, 2016 Patched in 1.0.3 (2899d)
Code Analysis
Analyzed Mar 16, 2026

JetBackup – Backup, Restore & Migrate Code Analysis

Dangerous Functions
9
Raw SQL Queries
3
38 prepared
Unescaped Output
31
738 escaped
Nonce Checks
1
Capability Checks
6
File Operations
297
External Requests
3
Bundled Libraries
0

Dangerous Functions Found

unserialize$data = $jetbackup_config ? unserialize(Crypt::decrypt($jetbackup_config, DB_PASSWORD)) : [];src\JetBackup\Config\Config.php:185
unserialize$this->_insertAdminUser( (array) unserialize( $admin_user ));src\JetBackup\Cron\Task\Restore.php:747
unserialize$session_tokens = unserialize($user->session_tokens);src\JetBackup\Cron\Task\Restore.php:847
unserializecase (($unserialized = @unserialize($data, ['allowed_classes' => false])) !== false || $data == 'b:0src\JetBackup\Cron\Task\Restore.php:1240
execelse exec($cmd, $o, $code);src\JetBackup\IO\Execute.php:39
shell_exec$o = shell_exec($cmd);src\JetBackup\IO\Execute.php:47
proc_open$process = proc_open(src\JetBackup\IO\Process.php:97
unserialize$data = $contents ? @unserialize($contents) : false;src\JetBackup\ResumableTask\ResumableTask.php:48
unserialize$data = $contents ? @unserialize($contents) : false;src\JetBackup\ResumableTask\ResumableTask.php:68

SQL Query Safety

93% prepared41 total queries

Output Escaping

96% escaped769 total outputs
Data Flows
5 unsanitized

Data Flow Analysis

5 flows5 with unsanitized paths
__construct (src\JetBackup\3rdparty\phpseclib3\System\SSH\Agent.php:119)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
2 unprotected

JetBackup – Backup, Restore & Migrate Attack Surface

Entry Points2
Unprotected2

AJAX Handlers 2

authwp_ajax_jetbackup_apisrc\JetBackup\Wordpress\Init.php:122
authwp_ajax_jetbackup_heartbeatsrc\JetBackup\Wordpress\Init.php:126
WordPress Hooks 18
actioninitbackup.php:26
actioninitbackup.php:27
actionupgrader_process_completebackup.php:29
filteradmin_body_classbackup.php:30
actionadmin_bar_menubackup.php:32
filterplugin_action_links_backup/backup.phpbackup.php:40
filterplugin_row_metabackup.php:48
filtersite_transient_update_pluginsbackup.php:56
filterpre_wp_cache_getsrc\JetBackup\Cache\CacheHandler.php:39
filterpre_transient_*src\JetBackup\Cache\CacheHandler.php:40
filterpre_site_transient_*src\JetBackup\Cache\CacheHandler.php:41
actionelementor/initsrc\JetBackup\Integrations\Vendors\Elementor.php:22
actionwp_loadedsrc\JetBackup\Wordpress\Init.php:95
actionwp_loadedsrc\JetBackup\Wordpress\Init.php:96
actionnetwork_admin_menusrc\JetBackup\Wordpress\Init.php:117
actionadmin_menusrc\JetBackup\Wordpress\Init.php:121
actionadmin_footersrc\JetBackup\Wordpress\Init.php:125
actionadmin_noticessrc\JetBackup\Wordpress\Init.php:161
Maintenance & Trust

JetBackup – Backup, Restore & Migrate Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.0
Last updatedMar 1, 2026
PHP min version7.4
Downloads4.1M

Community Trust

Rating90/100
Number of ratings1,051
Active installs100K
Developer Profile

JetBackup – Backup, Restore & Migrate Developer Profile

JetBackup

1 plugin · 100K total installs

76
trust score
Avg Security Score
95/100
Avg Patch Time
1440 days
View full developer profile
Detection Fingerprints

How We Detect JetBackup – Backup, Restore & Migrate

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/backup/public/libraries/main.js/wp-content/plugins/backup/public/images/eddie-menu.svg/wp-content/plugins/backup/public/css/common.css/wp-content/plugins/backup/public/css/checkbox.min.css/wp-content/plugins/backup/public/libraries/angular-loading-bar/loading-bar.css/wp-content/plugins/backup/public/libraries/angular-moment-picker/angular-moment-picker.min.css/wp-content/plugins/backup/public/libraries/bootstrap/css/bootstrap.min.css/wp-content/plugins/backup/public/libraries/fontawesome/css/all.min.css+2 more
Script Paths
/wp-content/plugins/backup/public/libraries/main.js

HTML / DOM Fingerprints

CSS Classes
update-pluginsplugin-count
Data Attributes
data-jetbackup-url
FAQ

Frequently Asked Questions about JetBackup – Backup, Restore & Migrate