CVE-2025-14294 Overview
The Razorpay for WooCommerce plugin for WordPress contains a missing authorization vulnerability in the getCouponList() function. This security flaw affects all versions up to and including 4.7.8 and stems from a broken authentication implementation where the checkAuthCredentials() permission callback unconditionally returns true, effectively bypassing all access controls.
This vulnerability allows unauthenticated attackers to exploit the unprotected API endpoint to modify billing and shipping contact information (specifically email and phone fields) of any WooCommerce order. The attack requires only knowledge or successful guessing of the target order ID, making exploitation straightforward for motivated attackers.
Critical Impact
Unauthenticated attackers can modify customer billing and shipping contact details on any WooCommerce order, potentially redirecting order communications and enabling fraud or social engineering attacks.
Affected Products
- Razorpay for WooCommerce plugin versions ≤ 4.7.8
- WordPress sites running vulnerable versions of the woo-razorpay plugin
- WooCommerce stores integrated with Razorpay payment gateway
Discovery Timeline
- 2026-02-19 - CVE CVE-2025-14294 published to NVD
- 2026-02-19 - Last updated in NVD database
Technical Details for CVE-2025-14294
Vulnerability Analysis
This vulnerability represents a classic Broken Access Control (CWE-306: Missing Authentication for Critical Function) issue in the Razorpay WooCommerce integration plugin. The core problem lies in the plugin's REST API authentication mechanism, where the permission callback designed to protect sensitive endpoints has been implemented incorrectly.
The checkAuthCredentials() function, which should validate that the requesting user has appropriate permissions to access the API, instead returns true unconditionally. This means any request to the affected endpoint—authenticated or not—is granted access without any verification of the caller's identity or authorization level.
The vulnerability is exploitable over the network without requiring user interaction or prior authentication. While the impact is limited to data integrity (modification of order contact details), this could facilitate downstream attacks including order hijacking, phishing, and customer identity theft.
Root Cause
The vulnerability originates from improper implementation of the WordPress REST API permission callback system. The checkAuthCredentials() function in the plugin's authentication module (auth.php) was designed to validate API credentials but instead returns a static true value regardless of the incoming request's authentication status.
This implementation error completely negates the security boundary that should protect WooCommerce order modification endpoints, allowing any external actor to invoke the getCouponList() function and associated order modification capabilities without providing valid credentials.
Attack Vector
An attacker exploiting this vulnerability would craft HTTP requests to the plugin's REST API endpoints. Since the authentication check always passes, the attacker only needs to:
- Identify a target WordPress site running the vulnerable Razorpay for WooCommerce plugin
- Enumerate or guess valid WooCommerce order IDs (which are often sequential integers)
- Submit API requests to modify billing/shipping email and phone information for target orders
The vulnerability mechanism centers on the broken permission callback in the REST API registration. When the WordPress REST API processes a request to the affected endpoint, it invokes checkAuthCredentials() to determine whether the request should be authorized. Because this function unconditionally returns true, all requests are permitted regardless of authentication status.
For detailed technical analysis, refer to the WordPress Woo Razorpay API Overview and the authentication module source.
Detection Methods for CVE-2025-14294
Indicators of Compromise
- Unusual API requests to /wp-json/ endpoints associated with Razorpay or WooCommerce coupon/order functions from unauthenticated sources
- Unexpected modifications to customer billing or shipping email/phone fields in WooCommerce order records
- Spike in REST API traffic to woo-razorpay plugin endpoints, especially from external IP addresses
- Customer complaints about receiving order-related communications at incorrect contact details
Detection Strategies
- Monitor WordPress REST API access logs for requests to Razorpay plugin endpoints that lack authentication headers
- Implement Web Application Firewall (WAF) rules to detect anomalous patterns of order ID enumeration attempts
- Configure WooCommerce order modification audit logging to track changes to billing/shipping contact information
- Review access logs for sequential order ID probing patterns indicative of enumeration attacks
Monitoring Recommendations
- Enable detailed logging for WooCommerce REST API endpoints and review for unauthorized modification attempts
- Set up alerts for bulk order contact information changes, particularly when originating from unauthenticated sessions
- Monitor for unusual geographic distribution of API requests to plugin endpoints
- Implement rate limiting on REST API endpoints to slow enumeration attacks
How to Mitigate CVE-2025-14294
Immediate Actions Required
- Update the Razorpay for WooCommerce plugin to the latest patched version immediately
- Audit recent WooCommerce orders for unauthorized modifications to billing/shipping contact information
- Review WordPress access logs for signs of exploitation prior to patching
- Notify affected customers if any unauthorized contact detail modifications are discovered
Patch Information
A security patch addressing this vulnerability is available through the WordPress plugin repository. Site administrators should update to the latest version of the Razorpay for WooCommerce plugin that includes proper authentication checks in the checkAuthCredentials() function. The fix can be verified by reviewing the WordPress Woo Razorpay Changeset History.
For additional vulnerability details, consult the Wordfence Vulnerability Advisory.
Workarounds
- Temporarily disable the Razorpay for WooCommerce plugin if immediate patching is not possible
- Implement WAF rules to block unauthenticated requests to the affected REST API endpoints
- Restrict access to WordPress REST API endpoints at the web server level (nginx/Apache) while awaiting the patch
- Consider placing the WooCommerce admin interface behind VPN or IP allowlisting as an interim measure
# Example Apache configuration to restrict plugin API access
<Location "/wp-json/razorpay/">
Require ip 192.168.1.0/24
Require ip 10.0.0.0/8
</Location>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


