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

CVE-2025-23491 Cross-Site Scripting in Vstemplate
📅 PUBLISHED: 2025-02-03 15:15 UTC 🔄 UPDATED: 2026-08-12 14:53 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.06%
👁️
0.06% probability
1.4× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
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 7.1
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
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-23491 is a reflected Cross-Site Scripting (XSS) vulnerability in the VSTEMPLATE Creator WordPress plugin (versions <= 2.0.2). The plugin fails to properly sanitize user-supplied input before reflecting it in the web page output, allowing an attacker to inject arbitrary JavaScript code. This vulnerability is classified as a WordPress ecosystem issue, as the plugin is designed for the WordPress CMS. The attack vector is network-based, requires user interaction (clicking a crafted link), and can lead to session hijacking, credential theft, or defacement. No public exploit code or proof-of-concept is currently available, and the vendor has not released a patch.

⚡ 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 through the official WordPress plugin repository. Users are advised to remove or disable the plugin until a patched version is released. The plugin is not available via NPM, PyPI, Go, or Ruby registries.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.1 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must click a malicious link.
  • 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 data.
  • Availability (A): Low (L) – Limited service disruption.

Threat Level: High. The vulnerability is easy to exploit and can lead to significant impact on the victim's WordPress session.

Deep Dive & Mechanics

The vulnerability resides in the vstemplate-creator plugin, which likely processes user input via GET or POST parameters and reflects it directly into the HTML response without proper encoding or sanitization. A typical reflected XSS attack involves crafting a URL with a malicious JavaScript payload in a parameter (e.g., ?param=<script>alert('XSS')</script>). When the victim visits this URL, the server includes the payload in the response, and the browser executes it.

The plugin's code likely uses functions like echo $_GET['param'] or similar without applying esc_html(), esc_js(), or wp_kses() WordPress sanitization functions. This allows the attacker to break out of the HTML context and inject arbitrary scripts.

Vulnerable vs. Patched Code

Vulnerable Code (vstemplate-creator <= 2.0.2):

<?php
// Example vulnerable code
$param = $_GET['template_name'];
echo "<div>You selected: " . $param . "</div>";
?>

Patched Code (Hypothetical):

<?php
// Patched code using WordPress escaping
$param = isset($_GET['template_name']) ? sanitize_text_field($_GET['template_name']) : '';
echo "<div>You selected: " . esc_html($param) . "</div>";
?>

The patched version uses sanitize_text_field() to strip dangerous characters and esc_html() to encode HTML entities, preventing script injection.

Exploitation & Lab Setup

Red Team (Attack Simulation)

  1. Setup: Install WordPress with VSTEMPLATE Creator plugin version 2.0.2 on a local server (e.g., XAMPP or Docker).
  2. Craft Payload: Create a URL with a malicious script:
    http://target/wp-content/plugins/vstemplate-creator/template.php?template_name=<script>alert(document.cookie)</script>
    
  3. Deliver: Send the link to a victim via email or social engineering.
  4. Execute: When the victim clicks the link, the script executes in their browser, stealing cookies or performing actions on their behalf.

Blue Team (Defense & Detection)

  1. Web Application Firewall (WAF): Deploy rules to block common XSS patterns (e.g., <script>, onerror=, javascript:).
  2. Input Validation: Ensure all user inputs are validated and sanitized server-side.
  3. Content Security Policy (CSP): Implement a strict CSP header to block inline scripts.
  4. Monitor Logs: Look for suspicious URL parameters containing script tags or encoded payloads.

Indicators of Compromise (IOCs)

  • Network: HTTP requests containing vstemplate-creator in the URI path with parameters like template_name=<script>.
  • Logs: Web server logs showing GET /wp-content/plugins/vstemplate-creator/template.php?template_name=%3Cscript%3E entries.
  • File System: Presence of unexpected JavaScript files in the WordPress uploads directory (if used for persistence).
  • Browser: Unusual pop-ups or redirects when visiting the vulnerable plugin page.

Detection Engineering

YARA Rule

rule CVE_2025_23491_Reflected_XSS {
    meta:
        description = "Detects reflected XSS attempts against VSTEMPLATE Creator plugin"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-23491"
    strings:
        $vuln_path = "/wp-content/plugins/vstemplate-creator/"
        $xss_payload1 = /<script[^>]*>/
        $xss_payload2 = /onerror\s*=\s*["']?[^"']*["']?/
        $xss_payload3 = /javascript\s*:/
    condition:
        $vuln_path and any of ($xss_payload*)
}

Sigma Rule

title: Reflected XSS Attempt Against VSTEMPLATE Creator
id: 8a3b2c1d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects reflected XSS attempts targeting the VSTEMPLATE Creator WordPress plugin
author: Valters IT
date: 2025-04-10
tags:
    - attack.t1059.007
    - cve.2025.23491
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-uri-query|contains: "/wp-content/plugins/vstemplate-creator/"
        cs-uri-query|contains|any:
            - "<script"
            - "onerror="
            - "javascript:"
    condition: selection
falsepositives:
    - Legitimate use of script tags in admin panels (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-23491 Reflected XSS Attempt - VSTEMPLATE Creator"; flow:to_server,established; content:"/wp-content/plugins/vstemplate-creator/"; http_uri; pcre:"/(<script|onerror=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Disable or remove the VSTEMPLATE Creator plugin until a patched version is released.
  2. Vendor Contact: Attempt to contact the vendor for a patch; if unresponsive, consider forking the plugin or switching to an alternative.
  3. WAF Rules: Deploy virtual patching via WAF to block XSS payloads targeting the plugin.
  4. User Education: Train users not to click suspicious links, especially those containing the plugin's path.
  5. Monitor: Continuously monitor web logs for exploitation attempts.

Valters IT
Securing Digital Frontiers

👁️ 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.html:"wp-content/plugins/vstemplate-creator"
http.html:"VSTEMPLATE Creator"

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