Dokan: AI Powered WooCommerce Multivendor Marketplace Solution <= 5.0.3 - Insecure Direct Object Reference to Authenticated (Custom+) Arbitrary Order Modification via Multiple AJAX Handlers
Description
The Dokan: AI Powered WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 5.0.3 via the change_order_status, add_order_note, delete_order_note, add_shipping_tracking_info, grant_access_to_download, and revoke_access_to_download AJAX handlers due to missing ownership validation on a user-controlled order ID key. This makes it possible for authenticated attackers, with custom vendor-level access and above, to modify the status of arbitrary orders, add attacker-controlled notes to any order (including customer-facing notes that trigger WooCommerce notification emails to buyers), delete any order note or WordPress comment by ID regardless of ownership, inject fake shipping tracking information on any order, and grant or revoke downloadable-product permissions on any order in the marketplace. Critically, nonce validity is not a barrier to exploitation: each of these AJAX handlers generates and embeds its nonce on the authenticated vendor's own dashboard order pages (e.g., /dashboard/orders/?order_id=OWN_ORDER_ID), which the attacker legitimately controls. The attacker harvests a valid nonce from their own order detail page and replays it against a victim order ID — the nonce only proves the request originates from a logged-in session, not that the order belongs to that vendor. This directly rebuts the prior rejection reasoning that 'users cannot generate valid nonces on command': vendor users can and do generate valid nonces on demand simply by loading their own dashboard pages. Source-code analysis confirmed the vulnerable code path is present and unpatched through version 5.0.1.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
1Patches
Vulnerability mechanics
Root cause
"Missing ownership validation on a user-controlled order ID key in multiple AJAX handlers allows authenticated vendors to act on arbitrary orders."
Attack vector
An authenticated attacker with vendor-level access loads their own dashboard order page (e.g., `/dashboard/orders/?order_id=OWN_ORDER_ID`), which generates a valid nonce for one of the vulnerable AJAX actions. The attacker then replays that nonce in a crafted AJAX request targeting a victim's order ID. Because the nonce only proves the request comes from a logged-in session—not that the vendor owns the target order—the attacker can modify order statuses, add or delete order notes, inject shipping tracking info, and grant or revoke download permissions on any order in the marketplace [CWE-639].
Affected code
The vulnerable AJAX handlers are registered in `includes/Ajax.php` (lines ~511–530) and include `change_order_status`, `add_order_note`, `delete_order_note`, `add_shipping_tracking_info`, `grant_access_to_download`, and `revoke_access_to_download` [ref_id=1]. None of these handlers verify that the supplied `order_id` belongs to the authenticated vendor before performing the requested action.
What the fix does
The patch [patch_id=6466792] adds ownership checks by calling `dokan_is_seller_has_order()` (or equivalent vendor-order validation) inside each vulnerable AJAX handler before processing the request. This ensures that the authenticated vendor can only act on orders that actually belong to them, closing the Insecure Direct Object Reference.
Preconditions
- authAttacker must be authenticated with at least custom vendor-level access (e.g., `dokandar` or `dokan_manage_order` capability).
- inputAttacker must have access to their own vendor dashboard order page to obtain a valid nonce for the target AJAX action.
- inputThe target order must exist in the marketplace and be accessible via its order ID.
Generated on Jun 18, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
10- github.com/getdokan/dokan/pull/3246mitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Ajax.phpmitre
- plugins.trac.wordpress.org/browser/dokan-lite/tags/5.0.1/includes/Install/Installer.phpmitre
- plugins.trac.wordpress.org/changesetmitre
- www.wordfence.com/threat-intel/vulnerabilities/id/998e545c-2ad5-48ec-bad1-d346170af408mitre
News mentions
0No linked articles in our index yet.