CVE-2024-13115

6.1 MEDIUM

📋 TL;DR

This vulnerability in the WP Projects Portfolio with Client Testimonials WordPress plugin allows attackers to trick logged-in administrators into executing Cross-Site Scripting (XSS) attacks via Cross-Site Request Forgery (CSRF). Attackers can inject malicious scripts that persist in the website, potentially compromising visitor data and site integrity. All WordPress sites using vulnerable versions of this plugin are affected.

💻 Affected Systems

Products:
  • WP Projects Portfolio with Client Testimonials WordPress plugin
Versions: All versions up to and including 3.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires an authenticated administrator to be tricked into visiting a malicious page while logged in.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain full administrative control of the WordPress site, steal sensitive data from visitors, deface the website, or install backdoors for persistent access.

🟠

Likely Case

Attackers inject malicious JavaScript that steals session cookies, redirects users to phishing sites, or displays unwanted content to visitors.

🟢

If Mitigated

With proper CSRF protection and input validation, the attack would fail, preventing unauthorized script injection.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires social engineering to trick an admin, but the technical execution is straightforward once the admin is targeted.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 3.1 or later

Vendor Advisory: https://wpscan.com/vulnerability/76e46727-3995-4442-bbcb-04e793d72108/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'WP Projects Portfolio with Client Testimonials'. 4. Click 'Update Now' if available, or manually update to version 3.1+. 5. Verify the plugin is updated to a patched version.

🔧 Temporary Workarounds

Disable the vulnerable plugin

all

Temporarily deactivate the plugin until it can be updated to a secure version.

wp plugin deactivate wp-projects-portfolio-with-client-testimonials

Implement CSRF protection headers

linux

Add security headers to WordPress to help mitigate CSRF attacks.

Add to .htaccess: Header set X-Frame-Options "SAMEORIGIN"
Add to .htaccess: Header set Content-Security-Policy "default-src 'self'"
Add to wp-config.php: define('FORCE_SSL_ADMIN', true);

🧯 If You Can't Patch

  • Remove the plugin entirely if no update is available.
  • Restrict admin access to trusted networks only and enforce strong authentication.

🔍 How to Verify

Check if Vulnerable:

Check the plugin version in WordPress admin under Plugins > Installed Plugins. If version is 3.0 or lower, it is vulnerable.

Check Version:

wp plugin get wp-projects-portfolio-with-client-testimonials --field=version

Verify Fix Applied:

Confirm the plugin version is 3.1 or higher after updating.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to wp-admin/admin-ajax.php or plugin-specific endpoints from unexpected IPs.
  • Administrative actions (like adding content) from IPs not associated with known admins.

Network Indicators:

  • Unexpected JavaScript payloads in HTTP requests to plugin endpoints.
  • CSRF token missing in requests that should have them.

SIEM Query:

source="wordpress.log" AND (uri_path="/wp-admin/admin-ajax.php" OR uri_path CONTAINS "wp-projects-portfolio") AND (http_method="POST" AND (referer NOT CONTAINS own_domain OR user_agent="malicious"))

🔗 References

📤 Share & Export