Dokan <= 5.0.2 - Missing Authorization to Authenticated (Vendor+) Privilege Escalation
- 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: no
- Technical impact: total
Summary
The Dokan plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 5.0.1. This is due to a missing authorization check in the `CustomersController` REST controller (`includes/REST/CustomersController.php`), which re-registers WooCommerce's customer CRUD routes under the `/dokan/v1/customers/` namespace and replaces WooCommerce's native `manage_woocommerce` capability check with a vendor-only check that inspects the requesting user's role and never validates the target user. This makes it possible for authenticated attackers with Vendor/Seller-level access and above to read, modify, or delete any WordPress user — including administrators — via `GET`/`PUT`/`DELETE` requests against `/wp-json/dokan/v1/customers/{id}`. Setting the `password` parameter on an administrator's record yields a full site takeover.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- dokaninc Dokan: AI Powered WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy
through 5.0.2
References 10
plugins.trac.wordpress.org
- browser/dokan-lite/tags/5.0.1/includes/REST/CustomersController.php#L60
- browser/dokan-lite/trunk/includes/REST/CustomersController.php#L60
- browser/dokan-lite/tags/5.0.1/includes/REST/CustomersController.php#L80
- browser/dokan-lite/trunk/includes/REST/CustomersController.php#L80
- browser/dokan-lite/tags/5.0.1/includes/REST/CustomersController.php#L280
- browser/dokan-lite/trunk/includes/REST/CustomersController.php#L280
- browser/dokan-lite/tags/5.0.1/includes/REST/CustomersController.php#L281
- browser/dokan-lite/trunk/includes/REST/CustomersController.php#L281
- changeset?new=3541712%40dokan-lite%2Ftags%2F5.0.3&old=3535602%40dokan-lite%2Ftags%2F5.0.2