CVE-2024-13120

4.8 MEDIUM

📋 TL;DR

This vulnerability allows high-privilege WordPress users (like administrators) to inject malicious scripts into plugin settings, which then execute when other users view those settings. It affects WordPress sites using the Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content plugin. The attack works even when unfiltered_html capability is disabled, particularly in multisite configurations.

💻 Affected Systems

Products:
  • Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content WordPress plugin
Versions: All versions before 4.15.20
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress administrator or equivalent high-privilege user account. Particularly relevant for WordPress multisite installations where unfiltered_html is commonly disabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker with admin access could inject persistent malicious scripts that steal session cookies, redirect users to phishing sites, or perform actions on behalf of authenticated users across the entire WordPress site.

🟠

Likely Case

Malicious administrator or compromised admin account injects JavaScript payloads that affect other administrators or users viewing plugin settings pages, potentially leading to credential theft or site defacement.

🟢

If Mitigated

With proper access controls and admin account security, impact is limited to authorized administrators who would need to intentionally exploit their own privileges.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires administrative access. Attack involves injecting JavaScript into plugin settings fields that lack proper sanitization.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.15.20

Vendor Advisory: https://wpscan.com/vulnerability/5b70798c-c30d-42e6-ac72-821c5568b9b5/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content'. 4. Click 'Update Now' if available. 5. If manual update needed, download version 4.15.20+ from WordPress.org and replace plugin files.

🔧 Temporary Workarounds

Remove vulnerable plugin

all

Temporarily disable or remove the plugin until patched

wp plugin deactivate paid-membership-pro
wp plugin delete paid-membership-pro

Restrict admin access

all

Limit administrative accounts to trusted users only and implement strong authentication

🧯 If You Can't Patch

  • Implement strict access controls for WordPress administrator accounts
  • Monitor plugin settings pages for suspicious JavaScript content

🔍 How to Verify

Check if Vulnerable:

Check plugin version in WordPress admin → Plugins → Installed Plugins. Look for version number below 4.15.20.

Check Version:

wp plugin get paid-membership-pro --field=version

Verify Fix Applied:

Confirm plugin version is 4.15.20 or higher after update. Test by attempting to inject script tags in plugin settings fields (in test environment).

📡 Detection & Monitoring

Log Indicators:

  • Unusual modifications to plugin settings by admin users
  • JavaScript payloads in plugin option database entries

Network Indicators:

  • External script loads from plugin settings pages
  • Unexpected outbound connections from admin interface

SIEM Query:

source="wordpress" AND (event="plugin_settings_update" AND plugin="paid-membership-pro") AND (data CONTAINS "<script>" OR data CONTAINS "javascript:")

🔗 References

📤 Share & Export