{"id":"CVE-2026-104338","kind":"vulnerability","aliases":["CVE-2026-104338"],"related":[],"title":"Razorpay for WooCommerce: missing authorization lets unauthenticated requests act as any user","description":"The Razorpay for WooCommerce WordPress plugin before 4.8.9 does not perform an authorization check on one of its REST routes and derives the acting user's identity from an unauthenticated request parameter, allowing an unauthenticated attacker to cause the request to execute as an arbitrary user account for the duration of the request. Exploitation additionally requires a specific coupon Razorpay for WooCommerce WordPress plugin before 4.8.9 to be active on the site.","summary":"The Razorpay for WooCommerce WordPress plugin takes the acting user's identity from an unauthenticated request parameter on one REST route, with no authorization check. An unauthenticated attacker can make a request run as an arbitrary user account for the duration of that request, but only while a specific coupon is active on the site.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","razorpay","self-hosted","woocommerce","wordpress"],"not_affected_if":["coupon-inactive","plugin-4.8.9-or-later"],"how_to_check":"- Check whether the Razorpay for WooCommerce plugin is installed and its version in the WordPress admin under Plugins.\n- Confirm whether the plugin version is below `4.8.9`.\n- Check whether the vulnerable coupon is active in WooCommerce under Marketing > Coupons.","fix":"- Razorpay for WooCommerce plugin: move to `4.8.9` or later.","status":"open","published_at":"2026-11-08T06:17:04+00:00","first_seen_at":"2026-11-08T06:46:21+00:00","triaged_at":"2026-11-08T06:47:25+00:00","updated_at":"2026-11-08T06:47:25+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-08T06:47:25Z","model":"claude-haiku-5-5","output":{"fix":"- Razorpay for WooCommerce plugin: move to `4.8.9` or later.","reach":"internet","title":"Razorpay for WooCommerce: missing authorization lets unauthenticated requests act as any user","impact":"high","summary":"The Razorpay for WooCommerce WordPress plugin takes the acting user's identity from an unauthenticated request parameter on one REST route, with no authorization check. An unauthenticated attacker can make a request run as an arbitrary user account for the duration of that request, but only while a specific coupon is active on the site.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","woocommerce","razorpay","self-hosted"],"confidence":0.6,"fix_status":"available","needs_auth":"no","worst_case":"Unauthenticated attacker acts as an arbitrary user account during the request","analyst_note":"Confirm the affected REST route and the coupon condition from the NVD entry or the Razorpay advisory.","how_to_check":"- Check whether the Razorpay for WooCommerce plugin is installed and its version in the WordPress admin under Plugins.\n- Confirm whether the plugin version is below `4.8.9`.\n- Check whether the vulnerable coupon is active in WooCommerce under Marketing > Coupons.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["plugin-4.8.9-or-later","coupon-inactive"],"who_is_affected":"Sites running the Razorpay for WooCommerce WordPress plugin before 4.8.9 are exposed, and only while a specific coupon is active. Sites without the plugin, or on 4.8.9 or later, are not affected. The sources do not say which coupon is involved.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000778,"input_tokens":4606,"output_tokens":635,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-104338':15A,18A '-2026':14A,17A '4.8.9':88C,146C 'account':63B,127C 'act':9A,34B,104C 'activ':77B,149C 'addit':135C 'allow':113C 'arbitrari':61B,125C 'attack':53B,116C 'author':5A,49B,93C 'caus':118C 'check':50B,94C 'coupon':75B,139C 'cve':13A,16A 'deriv':102C 'durat':66B,130C 'execut':122C 'exploit':134C 'host':23B 'ident':37B,107C 'let':6A 'make':55B 'miss':4A 'one':44B,96C 'packag':19B 'paramet':42B,112C 'perform':91C 'plugin':31B,86C,144C 'razorpay':1A,20B,27B,82C,140C 'request':8A,41B,57B,69B,111C,120C,133C 'requir':136C 'rest':45B,99C 'rout':46B,100C 'run':58B 'self':22B 'self-host':21B 'site':80B,152C 'specif':74B,138C 'take':32B 'unauthent':7A,40B,52B,110C,115C 'user':12A,35B,62B,105C,126C 'woocommerc':3A,24B,29B,84C,142C 'wordpress':25B,30B,85C,143C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Razorpay for WooCommerce WordPress plugin before 4.8.9 are exposed, and only while a specific coupon is active. Sites without the plugin, or on 4.8.9 or later, are not affected. The sources do not say which coupon is involved.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["package","razorpay","selfhosted","unknown","woocommerce","wordpress"],"campaign_type":null,"search_a":"'-104338':15A,18A '-2026':14A,17A 'act':9A 'author':5A 'cve':13A,16A 'let':6A 'miss':4A 'razorpay':1A 'request':8A 'unauthent':7A 'user':12A 'woocommerc':3A","search_b":"'account':63B 'act':34B 'activ':77B 'arbitrari':61B 'attack':53B 'author':49B 'check':50B 'coupon':75B 'durat':66B 'host':23B 'ident':37B 'make':55B 'one':44B 'packag':19B 'paramet':42B 'plugin':31B 'razorpay':20B,27B 'request':41B,57B,69B 'rest':45B 'rout':46B 'run':58B 'self':22B 'self-host':21B 'site':80B 'specif':74B 'take':32B 'unauthent':40B,52B 'user':35B,62B 'woocommerc':24B,29B 'wordpress':25B,30B","search_c":"'4.8.9':88C,146C 'account':127C 'act':104C 'activ':149C 'addit':135C 'allow':113C 'arbitrari':125C 'attack':116C 'author':93C 'caus':118C 'check':94C 'coupon':139C 'deriv':102C 'durat':130C 'execut':122C 'exploit':134C 'ident':107C 'one':96C 'paramet':112C 'perform':91C 'plugin':86C,144C 'razorpay':82C,140C 'request':111C,120C,133C 'requir':136C 'rest':99C 'rout':100C 'site':152C 'specif':138C 'unauthent':110C,115C 'user':105C,126C 'woocommerc':84C,142C 'wordpress':85C,143C","cause_entry":null,"cause_path":null,"first_public_at":"2026-11-08T06:17:04+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-104338","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104338","severity":null,"published_at":"2026-11-08T06:17:04+00:00","modified_at":"2026-11-08T06:17:04+00:00","first_seen_at":"2026-11-08T06:46:21+00:00","fetched_at":"2026-11-08T06:46:21+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}