PZ Frontend Manager <= 1.0.6 - Missing Authorization to Arbitrary User Deletion via 'dataType' Parameter
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
The PZ Frontend Manager plugin for WordPress is vulnerable to Missing Authorization in all versions up to and including 1.0.6. The pzfm_user_request_action_callback() function, registered via the wp_ajax_pzfm_user_request_action action hook, lacks both capability checks and nonce verification. This function handles user activation, deactivation, and deletion operations. When the 'dataType' parameter is set to 'delete', the function calls wp_delete_user() on all provided user IDs without verifying that the current user has the appropriate permissions. Notably, the similar pzfm_remove_item_callback() function does check pzfm_can_delete_user() before performing deletions, indicating this was an oversight. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete arbitrary WordPress users (including administrators) by sending a crafted request to the AJAX endpoint.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- projectzealous01 PZ Frontend Manager
through 1.0.6
References 7
plugins.trac.wordpress.org
- browser/pz-frontend-manager/trunk/admin/includes/ajax-hooks.php#L331
- browser/pz-frontend-manager/tags/1.0.6/admin/includes/ajax-hooks.php#L331
- browser/pz-frontend-manager/trunk/admin/includes/ajax-hooks.php#L292
- browser/pz-frontend-manager/tags/1.0.6/admin/includes/ajax-hooks.php#L292
- browser/pz-frontend-manager/trunk/admin/includes/ajax-hooks.php#L290
- browser/pz-frontend-manager/tags/1.0.6/admin/includes/ajax-hooks.php#L290