CVE-2025-14978

5.3 MEDIUM

📋 TL;DR

The PeachPay WooCommerce plugin has a missing capability check on its ConvesioPay webhook endpoint, allowing unauthenticated attackers to modify WooCommerce order statuses. This affects all WordPress sites using PeachPay plugin versions up to 1.119.8. Attackers can mark orders as completed, refunded, or other statuses without payment verification.

💻 Affected Systems

Products:
  • PeachPay — Payments & Express Checkout for WooCommerce
Versions: All versions up to and including 1.119.8
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects sites using the ConvesioPay payment method within PeachPay plugin.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could mark unpaid orders as completed, allowing customers to receive products without payment, or mark legitimate orders as refunded/cancelled, causing financial loss and customer service issues.

🟠

Likely Case

Attackers modify order statuses to disrupt business operations, cause confusion in fulfillment, or enable limited fraud by marking unpaid orders as completed.

🟢

If Mitigated

With proper webhook validation and authentication, only legitimate payment processors can update order statuses, maintaining business integrity.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Simple HTTP POST requests to the vulnerable endpoint can modify order statuses without authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.119.9 or later

Vendor Advisory: https://plugins.trac.wordpress.org/browser/peachpay-for-woocommerce

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find PeachPay plugin. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress plugin repository and manually update.

🔧 Temporary Workarounds

Disable ConvesioPay payment method

all

Temporarily disable ConvesioPay payment option in PeachPay settings until patched.

Web Application Firewall rule

linux

Block access to the vulnerable webhook endpoint via WAF or .htaccess.

# Add to .htaccess
RewriteEngine On
RewriteRule ^wp-json/peachpay/v1/convesiopay/webhook - [F,L]

🧯 If You Can't Patch

  • Monitor WooCommerce order status changes for suspicious patterns
  • Implement additional order verification steps before fulfillment

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for PeachPay version. If version is 1.119.8 or lower, you are vulnerable.

Check Version:

wp plugin list --name=peachpay --field=version

Verify Fix Applied:

After updating, verify PeachPay plugin version shows 1.119.9 or higher in WordPress plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-json/peachpay/v1/convesiopay/webhook
  • Rapid order status changes without corresponding payment events

Network Indicators:

  • HTTP POST requests to webhook endpoint from non-payment processor IPs

SIEM Query:

source="web_server" AND uri="/wp-json/peachpay/v1/convesiopay/webhook" AND method="POST" AND NOT src_ip IN [payment_processor_ips]

🔗 References

📤 Share & Export