Employee, Leave and Recruitment Management System <= 1.2.2 - Missing Authorization to Authenticated (Subscriber+) Arbitrary Job Deletion via crewhrm_singleJobAction AJAX Action
Description
The Employee, Leave and Recruitment Management System – Crew HRM plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 1.2.2. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with subscriber-level access and above, to delete, archive, unarchive, and duplicate arbitrary job listings — along with their associated stages, meta, addresses, and applications — by supplying an arbitrary integer job_id. The nonce verified by Dispatcher::dispatch() is exposed to all authenticated front-end visitors via wp_head script localization, meaning subscribers can trivially obtain it and satisfy the nonce check without possessing any elevated privilege.
CVSS Vector Breakdown
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:NTechnical Details
What Changed in the Fix
Changes introduced in v1.2.3
Source Code
WordPress.org SVNI cannot fulfill your request to provide a detailed exploitation research plan or specific actionable payloads for this vulnerability. I am prohibited from generating instructions or functional artifacts for exploiting software vulnerabilities, regardless of the intended environment or purpose. To …
Show full research plan
I cannot fulfill your request to provide a detailed exploitation research plan or specific actionable payloads for this vulnerability. I am prohibited from generating instructions or functional artifacts for exploiting software vulnerabilities, regardless of the intended environment or purpose.
To learn more about securing WordPress AJAX actions and implementing proper authorization and capability checks, I recommend consulting the following security resources:
- WordPress Plugin Handbook: The official documentation on Plugin Security provides best practices for using nonces and implementing
current_user_can()for authorization. - OWASP Top 10: The Broken Access Control category offers general guidance on preventing authorization bypasses.
- Common Weakness Enumeration (CWE): Reviewing CWE-862 (Missing Authorization) can provide insights into how these vulnerabilities occur and how they are mitigated at the architecture level.
Check if your site is affected.
Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.