CVE-2025-4223
📋 TL;DR
This vulnerability allows attackers to inject malicious scripts via the 'login_url' parameter in the Pagelayer WordPress plugin. Attackers can trick authenticated users into clicking malicious links, executing scripts in their browser context. All WordPress sites using Pagelayer plugin versions up to 2.0.0 are affected.
💻 Affected Systems
- Page Builder: Pagelayer – Drag and Drop website builder plugin for WordPress
⚠️ 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.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Authenticated user's session hijacked, credentials stolen, or administrative actions performed without consent.
Likely Case
Attacker steals session cookies or performs actions as the authenticated user, potentially compromising account security.
If Mitigated
Script execution blocked by browser security features or CSP headers, limiting impact to minor data leakage.
🎯 Exploit Status
Exploitation requires social engineering to trick authenticated users and valid credentials for the 'login_url' parameter.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 2.0.0
Vendor Advisory: https://plugins.trac.wordpress.org/changeset?new=3298138%40pagelayer%2Ftrunk%2Fmain%2Fajax.php&old=3253356%40pagelayer%2Ftrunk%2Fmain%2Fajax.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'Page Builder: Pagelayer' and click 'Update Now'. 4. Verify update to version after 2.0.0.
🔧 Temporary Workarounds
Disable Pagelayer Plugin
allTemporarily disable the vulnerable plugin until patched.
wp plugin deactivate pagelayer
Implement Content Security Policy
allAdd CSP headers to block inline script execution.
Add 'Content-Security-Policy: script-src 'self'' to web server configuration
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block XSS payloads in 'login_url' parameter.
- Monitor for suspicious requests containing script tags in URL parameters.
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel > Plugins > Installed Plugins for Pagelayer version 2.0.0 or earlier.
Check Version:
wp plugin get pagelayer --field=version
Verify Fix Applied:
Verify Pagelayer plugin version is after 2.0.0 in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- HTTP requests containing script tags or JavaScript in 'login_url' parameter
- Unusual authentication attempts followed by XSS payloads
Network Indicators:
- URLs with encoded script payloads in parameters
- Requests to ajax.php with suspicious 'login_url' values
SIEM Query:
source="web_logs" AND uri="*ajax.php*" AND query="*login_url=*script*"
🔗 References
- https://plugins.trac.wordpress.org/browser/pagelayer/tags/2.0.0/main/ajax.php#L1415
- https://plugins.trac.wordpress.org/changeset?new=3298138%40pagelayer%2Ftrunk%2Fmain%2Fajax.php&old=3253356%40pagelayer%2Ftrunk%2Fmain%2Fajax.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/b6db6736-4629-47b7-976a-f81335430119?source=cve