Description
The WP Human Resource Management plugin for WordPress is vulnerable to Privilege Escalation due to missing authorization in the ajax_insert_employee() and update_empoyee() functions in versions 2.0.0 through 2.2.17. The AJAX handler reads the client-supplied $_POST['role'] and, after basic cleaning via hrm_clean(), passes it directly to wp_insert_user() and later to $user->set_role() without verifying that the current user is allowed to assign that role. This makes it possible for authenticated attackers, with Employee-level access and above, to elevate their privileges to administrator.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
asaquzzaman WP Human Resource Management
Default version status: unaffected
2.0.0 to ≤ 2.2.17affected
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/3ba33a18-429f-4a3e-b018-bdfbbe6e8482?source=cve ↗
- https://wordpress.org/plugins/hrm/#developers ↗
- https://plugins.trac.wordpress.org/browser/hrm/tags/2.2.17/class/employee.php#L89 ↗
- https://plugins.trac.wordpress.org/browser/hrm/tags/2.2.17/class/employee.php#L543 ↗
- https://plugins.trac.wordpress.org/browser/hrm/tags/2.2.17/class/employee.php#L591 ↗