Description
The Backup Migration plugin for WordPress is vulnerable to OS Command Injection in all versions up to, and including, 2.1.5.1 due to insufficient sanitization of the `file` POST parameter on the `restoreBackup()` AJAX handler. The handler applies `esc_attr()` — an HTML-context sanitizer that does not strip shell metacharacters — and concatenates the result, unquoted, into a `php-cli -f … bmi_restore <file> <remote>` command passed to `exec()`. This makes it possible for authenticated attackers, with Administrator-level access (or any user granted the plugin's `do_backups` capability) and above, to execute arbitrary OS commands as the web-server user, bypassing WordPress hardening constants such as `DISALLOW_FILE_EDIT` and `DISALLOW_FILE_MODS` that would otherwise prevent code execution from the admin UI. This is an incomplete fix of CVE-2023-7002, which patched the same pattern only in the `$_POST['url']` path of `handleQuickMigration()`; the equivalent mitigations (`rawurlencode()` + explicit shell-metachar replacement + double-quoting in `exec()`) were never applied to `$backupName`.
Published: 2026-08-05
Score: 7.2 High
EPSS: 2.2% Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Backup Migration plugin for WordPress allows an authenticated user with Administrator-level access, or any user granted the plugin’s do_backups capability, to trigger the restoreBackup AJAX handler with a POST parameter named file. The handler concatenates the value of this file parameter, after applying esc_attr(), directly into a shell command executed via exec(). Because esc_attr() does not strip shell metacharacters, an attacker can inject arbitrary shell commands. This enables the attacker to execute code as the web‑server user, effectively achieving full remote code execution. The flaw bypasses WordPress hardening constants such as DISALLOW_FILE_EDIT and DISALLOW_FILE_MODS, making it possible to run code even if file editing is otherwise disabled.

Affected Systems

The vulnerability exists in all releases of the Backup Migration plugin up to and including version 2.1.5.1, developed by the inisev vendor. No other products or vendors are cited as affected in the CVE record.

Risk and Exploitability

The CVSS score of 7.2 indicates a high severity impact, with an EPSS score of 2% indicating a modest exploitation probability. KEV does not list this vulnerability. Because the attack requires only that the user be logged in with Administrator or do_backups capability, the exposure is limited to administrators, but the impact of exploitation is critical. An attacker can easily incorporate shell metacharacters into the file parameter to run arbitrary commands. The principal attack vector is through an authenticated AJAX POST request to restoreBackup, which most site administrators can access via the WordPress admin UI or programmatically.

Generated by OpenCVE AI on August 5, 2026 at 14:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Backup Migration plugin to version 2.1.5.2 or later, where the file parameter is properly escaped and quoted before execution.
  • As a temporary containment measure, revoke the do_backups capability from all roles except Administrators, or disable the plugin entirely for accounts that do not require backup functionality.
  • For sites that cannot upgrade immediately, patch the plugin by wrapping the file variable in quotes or applying PHP’s escapeshellarg() before passing it to exec(), ensuring no shell metacharacters can be injected.

Generated by OpenCVE AI on August 5, 2026 at 14:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 05 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 09:15:00 +0000

Type Values Removed Values Added
First Time appeared Inisev
Inisev backup Migration
Wordpress
Wordpress wordpress
Vendors & Products Inisev
Inisev backup Migration
Wordpress
Wordpress wordpress

Wed, 05 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description The Backup Migration plugin for WordPress is vulnerable to OS Command Injection in all versions up to, and including, 2.1.5.1 due to insufficient sanitization of the `file` POST parameter on the `restoreBackup()` AJAX handler. The handler applies `esc_attr()` — an HTML-context sanitizer that does not strip shell metacharacters — and concatenates the result, unquoted, into a `php-cli -f … bmi_restore <file> <remote>` command passed to `exec()`. This makes it possible for authenticated attackers, with Administrator-level access (or any user granted the plugin's `do_backups` capability) and above, to execute arbitrary OS commands as the web-server user, bypassing WordPress hardening constants such as `DISALLOW_FILE_EDIT` and `DISALLOW_FILE_MODS` that would otherwise prevent code execution from the admin UI. This is an incomplete fix of CVE-2023-7002, which patched the same pattern only in the `$_POST['url']` path of `handleQuickMigration()`; the equivalent mitigations (`rawurlencode()` + explicit shell-metachar replacement + double-quoting in `exec()`) were never applied to `$backupName`.
Title Backup Migration <= 2.1.5.1 - Authenticated (Administrator+) OS Command Injection via 'file' Parameter
Weaknesses CWE-77
References
Metrics cvssV3_1

{'score': 7.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Inisev Backup Migration
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-08-05T15:59:28.888Z

Reserved: 2026-05-02T19:09:22.648Z

Link: CVE-2026-7693

cve-icon Vulnrichment

Updated: 2026-08-05T15:59:25.746Z

cve-icon NVD

Status : Deferred

Published: 2026-08-05T08:16:44.703

Modified: 2026-08-12T21:00:37.147

Link: CVE-2026-7693

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T14:45:16Z

Weaknesses
  • CWE-77

    Improper Neutralization of Special Elements used in a Command ('Command Injection')