CVE-2024-13771

9.8 CRITICAL

📋 TL;DR

This vulnerability allows unauthenticated attackers to reset passwords for any user account in the Civi WordPress theme, including administrators, by exploiting insufficient user validation. All WordPress sites using the Civi theme version 2.1.4 or earlier are affected. Attackers only need to know the target username to take over accounts.

💻 Affected Systems

Products:
  • Civi - Job Board & Freelance Marketplace WordPress Theme
Versions: All versions up to and including 2.1.4
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: All WordPress installations using the vulnerable theme are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete site takeover where attackers reset administrator passwords, gain full control of the WordPress installation, and can install backdoors, steal data, or deface the site.

🟠

Likely Case

Account takeover of high-privilege users leading to data theft, content manipulation, or installation of malicious plugins/themes.

🟢

If Mitigated

Limited impact if strong network controls prevent external access or if immediate detection triggers response before damage occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires only knowledge of target usernames and sending crafted HTTP requests to the vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 2.1.4

Vendor Advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/5ab2c74d-b83b-40ea-951c-83aeb76a7515?source=cve

Restart Required: No

Instructions:

1. Update the Civi theme to the latest version via WordPress admin panel. 2. Verify update completed successfully. 3. Test password reset functionality.

🔧 Temporary Workarounds

Disable vulnerable theme

all

Temporarily switch to a different WordPress theme until patched

Block vulnerable endpoint

linux

Use web server rules to block access to the vulnerable PHP file

# For Apache: add to .htaccess
<Files "class-ajax.php">
    Order Allow,Deny
    Deny from all
</Files>
# For Nginx: add to server block
location ~* /includes/class-ajax\.php$ {
    deny all;
}

🧯 If You Can't Patch

  • Immediately disable the Civi theme and switch to a secure alternative theme
  • Implement web application firewall rules to block requests to /includes/class-ajax.php

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Appearance > Themes for Civi theme version 2.1.4 or earlier

Check Version:

wp theme list --field=name,version --format=csv | grep -i civi

Verify Fix Applied:

Confirm Civi theme version is higher than 2.1.4 in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-content/themes/civi/includes/class-ajax.php
  • Multiple failed login attempts followed by successful password reset for same user
  • Password reset emails sent to unexpected addresses

Network Indicators:

  • HTTP POST requests to class-ajax.php with password reset parameters from unauthenticated sources

SIEM Query:

source="web_logs" AND uri="/wp-content/themes/civi/includes/class-ajax.php" AND method="POST" AND (user_agent NOT CONTAINS "WordPress" OR src_ip NOT IN allowed_ips)

🔗 References

📤 Share & Export