Executive brief
The FOX Currency Switcher plugin for WooCommerce, which allows online stores to display prices in different currencies, contains a security flaw in its role-based pricing feature. An authenticated user, such as a standard customer, can manipulate web requests to trick the system into granting them prices reserved for higher-privileged roles like wholesale customers or administrators. This could lead to unauthorized discounts and financial loss for the store owner if specific role-based pricing is configured.
Technical details
The vulnerability exists in the `get_value()` function within `classes/fixed/fixed_user_role.php` due to improper validation of the `wooc_order_user_roles` request parameter. The plugin trusts this attacker-controlled parameter to determine the user's role context for price resolution, allowing it to override the legitimate role data stored in the authenticated user's session. An attacker with at least Subscriber-level access can provide a privileged role name (e.g., 'administrator' or 'wholesale_customer') in the request to trigger role-based price discounts. This issue affects all versions up to and including 1.4.6 and requires the 'fixed user-role pricing' feature to be enabled.
Affected products
- realmag777 FOX – Currency Switcher Professional for WooCommerce up to and including 1.4.6
Timeline
- 2026-05-28: disclosed
- 2026-05-28: advisory
References
- https://plugins.trac.wordpress.org/browser/woocommerce-currency-switcher/trunk/classes/fixed/fixed_user_role.php
- https://plugins.trac.wordpress.org/browser/woocommerce-currency-switcher/trunk/classes/fixed/fixed_user_role.php
- https://plugins.trac.wordpress.org/browser/woocommerce-currency-switcher/trunk/classes/woocs.php
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3543524%40woocommerce-currency-switcher&new=3543524%40woocommerce-currency-switcher&sfp_email=&sfph_mail=
- https://www.wordfence.com/threat-intel/vulnerabilities/id/1c8c1fec-0e87-46f7-83c5-8f9e9aa97b4f?source=cve