CVE-2025-11087

8.8 HIGH

📋 TL;DR

The Zegen Core WordPress plugin up to version 2.0.1 has a CSRF vulnerability that allows unauthenticated attackers to upload arbitrary files to the server by tricking an administrator into clicking a malicious link. This can lead to remote code execution if executable files are uploaded. All WordPress sites using vulnerable versions of this plugin are affected.

💻 Affected Systems

Products:
  • Zegen Core WordPress Plugin
Versions: Up to and including 2.0.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires the plugin to be installed and active. The vulnerability is in the custom-font-code/custom-fonts-uploads.php file.

⚠️ 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

Complete server compromise via remote code execution, allowing attackers to install backdoors, steal data, deface websites, or use the server for malicious activities.

🟠

Likely Case

Attackers upload web shells or malicious scripts to gain persistent access, deface websites, or use the server for phishing campaigns.

🟢

If Mitigated

Attack fails due to proper CSRF protections, file type validation, or web application firewall blocking malicious uploads.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires social engineering to trick an administrator into clicking a link, but the technical complexity is low once the link is clicked.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.0.2 or later

Vendor Advisory: https://themeforest.net/item/zegen-church-wordpress-theme/25116823

Restart Required: No

Instructions:

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

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable the Zegen Core plugin until patched.

wp plugin deactivate zegen-core

Restrict File Uploads

linux

Add .htaccess rules to block access to upload directories or restrict file types.

Add to .htaccess in uploads directory: <FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps|php8|inc|exe|sh|bat|cmd|pl|cgi)">\n  Order Allow,Deny\n  Deny from all\n</FilesMatch>

🧯 If You Can't Patch

  • Remove the Zegen Core plugin completely from the WordPress installation.
  • Implement a web application firewall (WAF) with CSRF protection and file upload filtering rules.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for Zegen Core version. If version is 2.0.1 or lower, you are vulnerable.

Check Version:

wp plugin get zegen-core --field=version

Verify Fix Applied:

After update, verify Zegen Core plugin version is 2.0.2 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads to /wp-content/uploads/custom-font-code/ directory
  • POST requests to /wp-content/plugins/zegen-core/custom-font-code/custom-fonts-uploads.php without referrer headers

Network Indicators:

  • HTTP POST requests to the vulnerable endpoint with file upload parameters
  • Traffic patterns showing CSRF attacks (requests from external sites to your WordPress)

SIEM Query:

source="web_logs" AND uri="/wp-content/plugins/zegen-core/custom-font-code/custom-fonts-uploads.php" AND method="POST" AND (user_agent="*" OR referrer="*")

🔗 References

📤 Share & Export