WordPress based E-commerce websites that powered by E-commerce plugin WooCommerce contains Critical Remote code execution vulnerability that allows nor managers to gain admin-level privilege in WordPress websites.
WooCommerce is very popular E-commerce plugin for WordPress that installed more than 4 million users to help for small to large-sized online merchants for WordPress based E-commerce.
A file deletion vulnerability was discovered in WooCommerce that leads to escalating the privileges in WordPress online store & allows shop manager to delete certain files and gain the complete admin privilege.
An unpatched design flaw in WordPress site one of the reasons that this vulnerability to perform privilege escalation and take over the complete admin access.
According to the researchers, “Arbitrary file deletion vulnerabilities aren’t considered critical in most cases as the only thing an attacker can cause is a Denial of Service by deleting the index.php of the website.”
In order to perform successful admin access, the attacker must be having a role of shop manager who can be employees of the store that can manage orders, products, and customers.
Cybercriminals gain these access using various attack methods such as XSS vulnerabilities or phishing attacks.
WooCommerce RCE Flaw Working Method
Basically shop manager roles allowed to perform certain limited access such as Read Private post, Edit users, Edit posts and this access will be allocated when Administrator install the WooCommerce plugin.
It will be reflected in WordPress core settings that means it works even after admin disable the plugin.
In order to ensure that only privileged users can access the edit another user, its calls tocurrent_user_can()
a function which means (Can the user trying to perform this action edit the specific user with the ID $target_user_id
?).
According to the Ripstech, “By default theÂ
edit_users
 capability allows users who have this privilege, e.g. shop managers, to edit any user, even administrators and perform actions such as updating their passwords. For security reasons, WooCommerce needs to specify that shop managers should be able to edit users, but only those with the customer role.”
To perform this operation plugins such as WooCommerce can add meta capabilities and it works only when the plugin is active.
But the problem is user roles get stored in the database so it keeps working even after disable.
it means that’ “meta privilege check” which restricts shop managers from editing administrators would not execute and the default behavior of allowing users edit_users
to edit any user, even administrators, would occur.”
So finally the hop manager will update the password of the admin account and gain the complete access of the site.
You can see Proof Video that explains how this exploit works to take over admin access.