CVE-2025-13642

5.4 MEDIUM

📋 TL;DR

This vulnerability allows authenticated WordPress users with Subscriber-level access or higher to execute arbitrary shortcodes via the ProfilePress plugin's form preview functionality. Attackers can potentially inject malicious shortcodes that could lead to privilege escalation, data exposure, or other unauthorized actions. All WordPress sites using ProfilePress plugin versions up to 4.16.7 are affected.

💻 Affected Systems

Products:
  • ProfilePress (Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content)
Versions: All versions up to and including 4.16.7
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with ProfilePress plugin and at least one authenticated user with Subscriber role or higher.

⚠️ 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 execute arbitrary shortcodes leading to privilege escalation, sensitive data exposure, or complete site compromise through chained attacks.

🟠

Likely Case

Authenticated attackers with subscriber access could execute unauthorized shortcodes to modify content, access restricted data, or perform limited administrative actions.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to authenticated users exploiting the vulnerability within their permission scope.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once authenticated. The vulnerability is publicly documented with code references.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.16.8 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3408055/

Restart Required: No

Instructions:

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

🔧 Temporary Workarounds

Disable vulnerable endpoint via .htaccess

all

Block access to the vulnerable pp_preview_form endpoint

RewriteEngine On
RewriteRule ^wp-content/plugins/wp-user-avatar/.*pp_preview_form.*$ - [F,L]

Restrict user registration

all

Temporarily disable new user registrations to limit attack surface

Update WordPress settings: Settings → General → Membership → Uncheck 'Anyone can register'

🧯 If You Can't Patch

  • Implement strict access controls and monitor user activity logs for suspicious shortcode execution attempts
  • Use web application firewall (WAF) rules to block requests containing malicious shortcode patterns to the vulnerable endpoint

🔍 How to Verify

Check if Vulnerable:

Check ProfilePress plugin version in WordPress admin panel under Plugins → Installed Plugins

Check Version:

wp plugin list --name=*profilepress* --field=version (if WP-CLI installed)

Verify Fix Applied:

Verify plugin version is 4.16.8 or higher and test form preview functionality with various input types

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /wp-content/plugins/wp-user-avatar/.../pp_preview_form with suspicious type parameters
  • Unusual shortcode execution in WordPress debug logs

Network Indicators:

  • HTTP requests containing 'pp_preview_form' endpoint with crafted type parameters
  • Unexpected shortcode-related API calls from authenticated users

SIEM Query:

source="wordpress" AND (uri="*pp_preview_form*" OR message="*shortcode*execution*")

🔗 References

📤 Share & Export