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 escattr() — an HTML-context sanitizer that does not strip shell metacharacters — and concatenates the result, unquoted, into a php-cli -f … bmirestore <file> <remote> command passed to exec(). This makes it possible for authenticated attackers, with Administrator-level access (or any user granted the plugin's dobackups capability) and above, to execute arbitrary OS commands as the web-server user, bypassing WordPress hardening constants such as DISALLOWFILEEDIT and DISALLOWFILEMODS 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.
Unauthenticated Sensitive Data Exposure in Backup Migration <= 2.1.1 versions.