CVE-2024-11205

8.5 HIGH

📋 TL;DR

This vulnerability in the WPForms WordPress plugin allows authenticated users with Subscriber-level access or higher to refund payments and cancel subscriptions without proper authorization. It affects WordPress sites using WPForms versions 1.8.4 through 1.9.2.1. Attackers can exploit this to cause financial loss and disrupt subscription services.

💻 Affected Systems

Products:
  • WPForms WordPress Plugin
Versions: 1.8.4 through 1.9.2.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WPForms plugin installed and Stripe integration configured for payments. Any authenticated user (Subscriber role or higher) can exploit this vulnerability.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could systematically refund all payments and cancel all subscriptions, causing significant financial loss, service disruption, and reputational damage to the business.

🟠

Likely Case

Attackers with subscriber accounts could refund recent payments and cancel active subscriptions, leading to revenue loss and customer service issues.

🟢

If Mitigated

With proper access controls and monitoring, impact would be limited to isolated incidents that could be quickly detected and reversed.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but only at Subscriber level, which is the lowest WordPress user role. The vulnerability is in a specific function that lacks proper capability checks.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.9.2.2

Vendor Advisory: https://wordpress.org/plugins/wpforms-lite/#developers

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WPForms and click 'Update Now'. 4. Verify update to version 1.9.2.2 or later.

🔧 Temporary Workarounds

Temporarily disable WPForms

all

Disable the WPForms plugin until patching is possible

wp plugin deactivate wpforms-lite

Restrict user registration

all

Temporarily disable new user registration to prevent attacker account creation

Update WordPress Settings → General → Membership to uncheck 'Anyone can register'

🧯 If You Can't Patch

  • Implement strict access controls and review all user accounts with Subscriber or higher privileges
  • Enable detailed logging of payment and subscription actions and monitor for unauthorized refund/cancel activities

🔍 How to Verify

Check if Vulnerable:

Check WPForms plugin version in WordPress admin panel under Plugins → Installed Plugins. If version is between 1.8.4 and 1.9.2.1 inclusive, the system is vulnerable.

Check Version:

wp plugin get wpforms-lite --field=version

Verify Fix Applied:

After updating, verify WPForms version shows 1.9.2.2 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected refund or subscription cancellation events in Stripe/WPForms logs
  • Payment status changes initiated by non-admin users
  • Multiple refund requests from single user accounts

Network Indicators:

  • HTTP POST requests to wp-admin/admin-ajax.php with 'action' parameter containing 'wpforms_stripe' or payment-related actions from non-admin users

SIEM Query:

source="wordpress.log" AND ("refund" OR "cancel" OR "wpforms_stripe") AND user_role!="administrator"

🔗 References

📤 Share & Export