☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Vcita logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N 🐛 CWE-209
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-32238

CVE-2025-32238 Information Disclosure in Vcita
📅 PUBLISHED: 2025-04-04 16: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.50%
👁️
0.50% probability
12.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
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 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-32238 is a medium-severity information disclosure vulnerability affecting the WordPress plugin "Online Booking & Scheduling Calendar for WordPress by vcita" (meeting-scheduler-by-vcita), developed by Vcita. The vulnerability allows an unauthenticated attacker to retrieve embedded sensitive data through verbose error messages. This is a classic CWE-209 (Generation of Error Message Containing Sensitive Information) issue, where the application leaks internal details (e.g., database credentials, API keys, or configuration paths) in error responses. The CVSS score is 4.3 (Medium), and the EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk is elevated for sites with debug mode enabled or custom error handlers disabled.

⚡ 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 is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory and is also available for direct download from Vcita's website. Since the patch status is unknown, users must rely on vendor updates or manual mitigation. No known supply chain compromise has been reported, but the lack of a patch increases the risk of malicious actors forking or backporting fixes.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 4.3 (Medium)
  • Attack Vector: Network (AV:N) – Exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – Unauthenticated.
  • User Interaction: None (UI:N) – No user action needed.
  • Scope: Unchanged (S:U) – Impact confined to the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited sensitive data exposure.
  • Integrity Impact: None (I:N) – No data modification.
  • Availability Impact: None (A:N) – No service disruption.

Threat Level: Medium. While the CVSS score is moderate, the potential for leaking API keys or database credentials could lead to lateral movement or privilege escalation if combined with other vulnerabilities.

Deep Dive & Mechanics

The vulnerability resides in the error handling mechanism of the Vcita booking plugin. When the plugin encounters a failure (e.g., invalid API response, database connection error, or malformed input), it generates a verbose error message that includes sensitive information such as:

  • Full file paths (e.g., /var/www/html/wp-content/plugins/meeting-scheduler-by-vcita/includes/class-api.php)
  • Database credentials (if exposed in stack traces)
  • API keys or tokens used for Vcita service communication
  • Internal configuration details

The issue is triggered by sending specially crafted requests that cause the plugin to fail in a controlled manner. For example, an attacker could:

  1. Send a request with an invalid or malformed booking ID.
  2. Trigger a database query that fails due to missing parameters.
  3. Exploit a race condition or timeout that reveals debug output.

The plugin does not sanitize error output before rendering it to the user, and it may rely on WordPress's default error handling, which can be verbose if WP_DEBUG is enabled.

Vulnerable vs. Patched Code

Since no patch is available, the following analysis is based on typical vulnerable patterns in WordPress plugins.

Vulnerable Code (Conceptual):

// In class-api.php
function get_booking_details($booking_id) {
    global $wpdb;
    $result = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}vcita_bookings WHERE id = $booking_id");
    if (!$result) {
        // Vulnerable: exposes database error
        echo "Error: " . $wpdb->last_error;
        echo "Query: " . $wpdb->last_query;
        return false;
    }
    return $result;
}

Patched Code (Conceptual):

function get_booking_details($booking_id) {
    global $wpdb;
    $result = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}vcita_bookings WHERE id = %d", $booking_id));
    if (!$result) {
        // Patched: generic error message, no sensitive data
        echo "An error occurred while retrieving booking details.";
        error_log("Database error: " . $wpdb->last_error); // Log internally
        return false;
    }
    return $result;
}

The patched version uses prepared statements to prevent SQL injection (though not the primary issue) and replaces verbose error messages with generic ones, logging details only to server logs.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with the Vcita plugin version <= 4.5.5 installed and active.
  • The plugin must have debug mode enabled or default error handling that exposes details.

Exploitation Steps:

  1. Identify the vulnerable endpoint: The plugin typically exposes AJAX actions like vcita_get_booking or vcita_api_request. Use a tool like Burp Suite or curl to probe.

  2. Craft a malicious request: Send a request with an invalid parameter to trigger an error.

    curl -X POST "http://target.com/wp-admin/admin-ajax.php" \
    -d "action=vcita_get_booking&booking_id=invalid' OR '1'='1"
    
  3. Observe the response: If the plugin is vulnerable, the response will contain database errors, file paths, or API keys.

    {
      "success": false,
      "data": "WordPress database error: [You have an error in your SQL syntax...] for query SELECT * FROM wp_vcita_bookings WHERE id = invalid' OR '1'='1"
    }
    
  4. Extract sensitive data: Look for:

    • Database credentials in stack traces.
    • API keys in error messages (e.g., vcita_api_key=sk_live_...).
    • Server paths for further exploitation.

Lab Setup:

  • Use a local WordPress instance (e.g., via Docker or XAMPP).
  • Install the vulnerable plugin version.
  • Enable WP_DEBUG in wp-config.php:
    define('WP_DEBUG', true);
    define('WP_DEBUG_DISPLAY', true);
    
  • Test with the above curl command.

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual AJAX requests to admin-ajax.php with parameters like action=vcita_* and suspicious payloads (SQL keywords, special characters).
  • Look for error responses containing database errors, file paths, or API keys in HTTP responses.
  • Use WAF rules to block requests with SQL-like patterns in booking IDs.

Defense:

  • Disable WP_DEBUG_DISPLAY in production.
  • Implement a Web Application Firewall (WAF) rule to block verbose error messages.
  • Apply the principle of least privilege to the database user used by WordPress.
  • Monitor server error logs for unusual activity.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /wp-admin/admin-ajax.php with action=vcita_* and parameters containing SQL keywords or special characters.
    • HTTP responses containing patterns like WordPress database error, Fatal error, or Stack trace.
  • File IOCs:
    • Presence of debug log files (e.g., debug.log) in /wp-content/ with sensitive data.
  • Behavioral IOCs:
    • Unusual number of 500 Internal Server Error responses from the plugin's endpoints.
    • Repeated requests with invalid booking IDs or malformed data.

Detection Engineering

YARA Rule

rule CVE_2025_32238_WordPress_Vcita_Info_Leak {
    meta:
        description = "Detects verbose error messages from Vcita plugin indicating CVE-2025-32238"
        author = "Valters IT"
        date = "2025-04-01"
        reference = "CVE-2025-32238"
    strings:
        $error1 = "WordPress database error" ascii wide nocase
        $error2 = "Fatal error" ascii wide nocase
        $error3 = "Stack trace" ascii wide nocase
        $error4 = "vcita_api_key" ascii wide nocase
        $error5 = "wp_vcita_" ascii wide nocase
    condition:
        any of ($error*) and filesize < 10KB
}

Sigma Rule

title: CVE-2025-32238 - Vcita Plugin Sensitive Data Leak
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP responses containing verbose error messages from Vcita booking plugin
author: Valters IT
date: 2025-04-01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-32238
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains: 'action=vcita_'
        sc-status: 500
        response_body|contains:
            - 'WordPress database error'
            - 'Fatal error'
            - 'Stack trace'
            - 'vcita_api_key'
    condition: selection
falsepositives:
    - Legitimate debugging sessions
level: high
tags:
    - attack.initial_access
    - attack.t1190

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-32238 - Vcita Plugin Sensitive Data Leak Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/wp-admin/admin-ajax.php"; http_uri;
    content:"action=vcita_"; http_client_body;
    pcre:"/(WordPress database error|Fatal error|Stack trace|vcita_api_key)/Ri";
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
    reference:cve,2025-32238;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable debug mode: Ensure WP_DEBUG_DISPLAY is set to false in wp-config.php.
  2. Implement custom error handler: Add a filter to catch and sanitize plugin errors.
    add_filter('wp_die_handler', function() {
        return function($message, $title, $args) {
            wp_die('An error occurred. Please contact the site administrator.', 'Error');
        };
    });
    
  3. Use a WAF: Block requests with SQL-like patterns in booking parameters.

Long-term Fix:

  • Monitor the Vcita plugin page for an official patch.
  • Consider replacing the plugin with an alternative if no patch is released within 30 days.
  • Conduct a security audit of the plugin's error handling code.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ 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:"vcita"
http.html:"vcita"
http.html:"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-32238/ · 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.