CVE-2024-13544

4.8 MEDIUM

📋 TL;DR

The Zarinpal Paid Download WordPress plugin through version 2.3 has improper file upload validation, allowing administrators to upload arbitrary files even when restricted in multisite configurations. This affects WordPress sites using the vulnerable plugin version, particularly in multisite setups where admin privileges are more widely distributed.

💻 Affected Systems

Products:
  • Zarinpal Paid Download WordPress Plugin
Versions: Up to and including 2.3
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires admin-level access; particularly dangerous in WordPress multisite installations where site administrators have elevated privileges.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker with admin access could upload malicious files like web shells, leading to complete server compromise, data theft, or ransomware deployment.

🟠

Likely Case

Malicious administrators or compromised admin accounts upload backdoors or malware to maintain persistence or exfiltrate data.

🟢

If Mitigated

With proper access controls and file upload restrictions, impact is limited to unauthorized file storage without execution.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires admin credentials; trivial to exploit once credentials are obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.4 or later

Vendor Advisory: https://wpscan.com/vulnerability/91884263-62a7-436e-b19f-682b1aeb37d6/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find Zarinpal Paid Download plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download version 2.4+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable the vulnerable plugin until patched.

wp plugin deactivate zarinpal-paid-download

Restrict File Uploads

linux

Implement server-side restrictions on file uploads in web server configuration.

# In .htaccess for Apache:
<FilesMatch "\.(php|phtml|php3|php4|php5|pl|py|jsp|asp|sh|cgi)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>
# In nginx config:
location ~* \.(php|phtml|php3|php4|php5|pl|py|jsp|asp|sh|cgi)$ {
  deny all;
}

🧯 If You Can't Patch

  • Remove admin access from untrusted users and implement strict access controls.
  • Monitor file upload directories for suspicious files and implement file integrity monitoring.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Zarinpal Paid Download version number.

Check Version:

wp plugin get zarinpal-paid-download --field=version

Verify Fix Applied:

Confirm plugin version is 2.4 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads to plugin directories
  • Admin users uploading executable files
  • HTTP POST requests to upload endpoints with suspicious file extensions

Network Indicators:

  • POST requests to /wp-content/plugins/zarinpal-paid-download/ upload endpoints
  • Unusual outbound connections from server after file uploads

SIEM Query:

source="web_server" AND (url="*zarinpal-paid-download*" AND method="POST") AND (user_agent="*admin*" OR user="*admin*")

🔗 References

📤 Share & Export