CVE-2025-14138

6.1 MEDIUM

📋 TL;DR

The WPLG Default Mail From WordPress plugin contains a reflected cross-site scripting vulnerability that allows unauthenticated attackers to inject malicious scripts via crafted links. When users click these links, the scripts execute in their browser context, potentially stealing session cookies or performing actions on their behalf. All WordPress sites using this plugin version 1.0.0 or earlier are affected.

💻 Affected Systems

Products:
  • WPLG Default Mail From WordPress Plugin
Versions: All versions up to and including 1.0.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin activated.

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

Attackers could steal administrator session cookies, take over WordPress sites, install backdoors, or redirect users to malicious sites.

🟠

Likely Case

Attackers steal user session cookies, perform limited actions as authenticated users, or redirect to phishing pages.

🟢

If Mitigated

With proper web application firewalls and security headers, impact is limited to script execution in isolated browser contexts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Attack requires user interaction (clicking malicious link) but no authentication. Simple payloads can be crafted using $_SERVER['PHP_SELF'] parameter.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://plugins.trac.wordpress.org/browser/wplg-default-mail-from

Restart Required: No

Instructions:

1. Log into WordPress admin panel
2. Navigate to Plugins → Installed Plugins
3. Find 'WPLG Default Mail From'
4. Click 'Deactivate' then 'Delete'
5. Remove plugin files from /wp-content/plugins/wplg-default-mail-from/

🔧 Temporary Workarounds

Implement Content Security Policy

all

Add CSP headers to prevent script execution from untrusted sources

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to wp-config.php: header("Content-Security-Policy: default-src 'self'; script-src 'self'");

Web Application Firewall Rules

all

Block requests containing malicious script patterns in PHP_SELF parameter

ModSecurity rule: SecRule ARGS:PHP_SELF "@rx <script" "id:1001,phase:2,deny,status:403,msg:'XSS Attempt'"
Cloudflare WAF: Create rule blocking requests with script tags in URL parameters

🧯 If You Can't Patch

  • Disable the WPLG Default Mail From plugin immediately
  • Implement strict input validation and output escaping in custom code

🔍 How to Verify

Check if Vulnerable:

Check if /wp-content/plugins/wplg-default-mail-from/ directory exists and contains wplg.php file with version 1.0.0 or earlier

Check Version:

grep -r "Version:" /path/to/wordpress/wp-content/plugins/wplg-default-mail-from/wplg.php

Verify Fix Applied:

Confirm plugin directory is removed from /wp-content/plugins/ and no longer appears in WordPress admin plugins list

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests with script tags in PHP_SELF parameter
  • Unusual GET requests to WordPress admin-ajax.php with suspicious parameters
  • Multiple 403 errors from WAF blocking XSS attempts

Network Indicators:

  • URLs containing <script> tags or javascript: protocol in query parameters
  • Requests to WordPress sites with encoded script payloads in URLs

SIEM Query:

source="web_logs" AND (url="*<script*" OR url="*javascript:*") AND (uri_path="*/wp-content/plugins/wplg-default-mail-from/*" OR user_agent="*WordPress*")

🔗 References

📤 Share & Export