CVE-2025-2505

9.8 CRITICAL

📋 TL;DR

The Age Gate WordPress plugin contains a Local File Inclusion vulnerability that allows unauthenticated attackers to include and execute arbitrary PHP files on the server. This can lead to remote code execution, data theft, and complete system compromise. All WordPress sites using Age Gate version 3.5.3 or earlier are affected.

💻 Affected Systems

Products:
  • WordPress Age Gate plugin
Versions: All versions up to and including 3.5.3
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default configuration. Requires WordPress installation with Age Gate plugin active.

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

Full server compromise leading to data exfiltration, ransomware deployment, or website defacement through arbitrary code execution.

🟠

Likely Case

Attackers upload malicious PHP files via other vectors (like image uploads) then execute them via this vulnerability to gain shell access.

🟢

If Mitigated

With proper file upload restrictions and web application firewalls, exploitation attempts are blocked but the vulnerability remains.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple HTTP request manipulation required. Exploitation is trivial for attackers with basic web security knowledge.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.5.4

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

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Age Gate plugin. 4. Click 'Update Now' if update available. 5. If no update appears, manually download version 3.5.4+ from WordPress.org.

🔧 Temporary Workarounds

Disable Age Gate Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate age-gate

Web Application Firewall Rule

all

Block requests containing malicious 'lang' parameter patterns

Add WAF rule: Block if request_uri contains 'lang=' and contains '.php'

🧯 If You Can't Patch

  • Implement strict file upload restrictions to prevent PHP file uploads
  • Deploy web application firewall with LFI protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Age Gate version. If version ≤ 3.5.3, vulnerable.

Check Version:

wp plugin get age-gate --field=version

Verify Fix Applied:

Confirm Age Gate plugin version is 3.5.4 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests with 'lang' parameter containing '.php' extensions
  • Multiple failed attempts with different 'lang' parameter values
  • Unusual file inclusion errors in web server logs

Network Indicators:

  • HTTP GET requests to Age Gate endpoints with suspicious 'lang' parameters
  • Traffic spikes to vulnerable plugin endpoints

SIEM Query:

source="web_logs" AND uri="*age-gate*" AND (param="*lang=*.php*" OR param="*lang=*/../*")

🔗 References

📤 Share & Export