{"id":"CVE-2026-121993","kind":"vulnerability","aliases":["CVE-2026-121993"],"related":[],"title":"wePOS for WooCommerce: vendor staff can mark other orders paid","description":"wePOS (Point Of Sale for WooCommerce) before 2.0.3 contains a missing authorization vulnerability in the wepos/v1/payment/process REST route that allows authenticated vendor-level users to mark arbitrary orders as paid and completed by supplying another order's ID. Attackers with only the publish_shop_orders capability (such as Dokan vendor staff) can invoke the payment processing endpoint with an order ID they do not own to trigger the order completion lifecycle, including stock reduction and granting of paid-order access, without making any real payment.","summary":"wePOS, a point-of-sale plugin for WooCommerce, has a REST route that does not check order ownership. An authenticated vendor-level user can mark another order as paid and completed without a real payment, triggering stock reduction and paid-order access.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["dokan","package","wepos","woocommerce","wordpress"],"not_affected_if":["no-vendor-roles","single-admin-store","wepos-2.0.3-or-later"],"how_to_check":"- Check the installed wePOS version in the WordPress plugins list; versions below `2.0.3` are affected.\n- Confirm whether the WooCommerce site uses Dokan or another multi-vendor plugin that grants the `publish_shop_orders` capability to vendor staff.","fix":"- wePOS: move to `2.0.3` or later.","status":"open","published_at":"2026-11-04T14:17:39+00:00","first_seen_at":"2026-11-04T14:27:10+00:00","triaged_at":"2026-11-04T14:28:18+00:00","updated_at":"2026-11-04T14:28:18+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-04T14:28:18Z","model":"claude-haiku-5-5","output":{"fix":"- wePOS: move to `2.0.3` or later.","reach":"network","title":"wePOS for WooCommerce: vendor staff can mark other orders paid","impact":"medium","summary":"wePOS, a point-of-sale plugin for WooCommerce, has a REST route that does not check order ownership. An authenticated vendor-level user can mark another order as paid and completed without a real payment, triggering stock reduction and paid-order access.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","woocommerce","wepos","dokan"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Orders marked paid without payment, stock wrongly reduced, paid-order access granted","analyst_note":"","how_to_check":"- Check the installed wePOS version in the WordPress plugins list; versions below `2.0.3` are affected.\n- Confirm whether the WooCommerce site uses Dokan or another multi-vendor plugin that grants the `publish_shop_orders` capability to vendor staff.","plain_action":"","needs_analyst":false,"not_affected_if":["wepos-2.0.3-or-later","no-vendor-roles","single-admin-store"],"who_is_affected":"Sites running wePOS before 2.0.3 with multi-vendor roles that hold the publish_shop_orders capability, such as Dokan vendor staff. Sites without wePOS or without vendor-level accounts are not exposed through this route.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000702,"input_tokens":4252,"output_tokens":553,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121993':13A,16A '-2026':12A,15A '2.0.3':74C 'access':66B,148C 'allow':86C 'anoth':49B,102C 'arbitrari':94C 'attack':106C 'authent':42B,87C 'author':78C 'capabl':113C 'check':38B 'complet':54B,99C,137C 'contain':75C 'cve':11A,14A 'dokan':17B,116C 'endpoint':124C 'grant':143C 'id':105C,128C 'includ':139C 'invok':120C 'level':45B,90C 'lifecycl':138C 'make':150C 'mark':7A,48B,93C 'miss':77C 'order':9A,39B,50B,65B,95C,103C,112C,127C,136C,147C 'ownership':40B 'packag':18B 'paid':10A,52B,64B,97C,146C 'paid-ord':63B,145C 'payment':58B,122C,153C 'plugin':28B 'point':25B,68C 'point-of-sal':24B 'process':123C 'publish':110C 'real':57B,152C 'reduct':61B,141C 'rest':33B,83C 'rout':34B,84C 'sale':27B,70C 'shop':111C 'staff':5A,118C 'stock':60B,140C 'suppli':101C 'trigger':59B,134C 'user':46B,91C 'vendor':4A,44B,89C,117C 'vendor-level':43B,88C 'vulner':79C 'wepo':1A,19B,22B,67C 'wepos/v1/payment/process':82C 'without':55B,149C 'woocommerc':3A,20B,30B,72C 'wordpress':21B","nicknames":[],"mitigations":[],"who_affected":"Sites running wePOS before 2.0.3 with multi-vendor roles that hold the publish_shop_orders capability, such as Dokan vendor staff. Sites without wePOS or without vendor-level accounts are not exposed through this route.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["dokan","medium","package","wepos","woocommerce","wordpress"],"campaign_type":null,"first_public_at":"2026-11-04T14:17:39+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121993","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121993","severity":null,"published_at":"2026-11-04T14:17:39+00:00","modified_at":"2026-11-04T14:17:39+00:00","first_seen_at":"2026-11-04T14:27:10+00:00","fetched_at":"2026-11-04T14:27:10+00:00","note":null}],"documents":[{"id":67451,"url":"https://github.com/getdokan/wepos/releases/tag/v2.0.3","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":67452,"url":"https://www.vulncheck.com/advisories/wepos-before-missing-authorization-via-payment-process-endpoint","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}