☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Mahmudul hasan arif 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-497
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-58797

CVE-2025-58797 Exposure of sensitive system information to in Mahmudul hasan arif
📅 PUBLISHED: 2025-09-05 14: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.07%
👁️
0.07% probability
1.6× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1552
👁️
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-58797 is a medium-severity vulnerability (CVSS 5.3) affecting the Ninja Charts WordPress plugin by Mahmudul Hasan Arif, versions up to and including 3.3.5. The vulnerability is classified as an Exposure of Sensitive System Information to an Unauthorized Control Sphere (CWE-200). This allows an unauthenticated attacker to retrieve embedded sensitive data from the plugin, potentially exposing internal system details, database credentials, or other secrets stored within the plugin’s configuration or assets.

As a WordPress plugin vulnerability, this issue is part of the broader WordPress ecosystem threat landscape. The plugin is used to create charts and graphs, and the exposure likely stems from insecure handling of AJAX endpoints, shortcodes, or REST API routes that leak sensitive information without proper authorization checks.

The EPSS score is 0.0%, indicating low exploitation probability in the wild currently, but the lack of a patch makes it a ticking time bomb for sites using this plugin.

⚡ 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 in a WordPress plugin distributed via the official WordPress Plugin Directory. The supply chain risk is moderate: if the plugin is installed from the directory, the vulnerable code is present. No official patch has been released, and the vendor’s response is unknown. Users should consider removing the plugin or applying a virtual patch via a Web Application Firewall (WAF).

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) – unauthenticated.
  • User Interaction: None (UI:N) – no user action needed.
  • Scope: Unchanged (S:U) – vulnerability does not affect other components.
  • 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. The vulnerability is easy to exploit but only leaks information. However, leaked credentials or API keys could lead to further compromise.

Deep Dive & Mechanics

The vulnerability resides in the Ninja Charts plugin’s handling of data retrieval for chart rendering. The plugin likely exposes an AJAX action or REST endpoint that returns chart data without verifying the user’s permissions. An attacker can craft a request to this endpoint and receive sensitive information such as:

  • Database connection strings
  • API keys for external services (e.g., Google Charts, DataTables)
  • Internal server paths
  • Other embedded secrets in chart configurations

The root cause is a missing capability check or nonce verification on the data retrieval function. In WordPress plugins, this is a common flaw where developers assume only authenticated users will access certain endpoints, but fail to enforce it.

Attack Flow:

  1. Attacker identifies the vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=ninja_charts_get_data).
  2. Attacker sends a GET or POST request with minimal parameters.
  3. The plugin returns sensitive data in JSON or HTML format without checking if the user has the edit_posts or manage_options capability.
  4. Attacker extracts and uses the leaked information.

Vulnerable vs. Patched Code

Since no patch is available, we can only hypothesize the vulnerable code pattern and the required fix.

Vulnerable Code (Hypothetical):

add_action('wp_ajax_nopriv_ninja_charts_get_data', 'ninja_charts_get_data');
function ninja_charts_get_data() {
    $chart_id = $_GET['chart_id'];
    $data = get_chart_data_from_db($chart_id);
    wp_send_json($data);
}

Patched Code (Required Fix):

add_action('wp_ajax_nopriv_ninja_charts_get_data', 'ninja_charts_get_data');
add_action('wp_ajax_ninja_charts_get_data', 'ninja_charts_get_data');
function ninja_charts_get_data() {
    // Add nonce verification
    if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'ninja_charts_nonce')) {
        wp_die('Security check failed');
    }
    // Add capability check
    if (!current_user_can('edit_posts')) {
        wp_die('Unauthorized');
    }
    $chart_id = intval($_GET['chart_id']);
    $data = get_chart_data_from_db($chart_id);
    wp_send_json($data);
}

The fix adds:

  • Nonce verification to prevent CSRF.
  • Capability check to ensure only authorized users can access data.
  • Input sanitization (intval) to prevent SQL injection.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with Ninja Charts plugin version <= 3.3.5 installed and activated.
  • Network access to the site.

Exploitation Steps:

  1. Identify the vulnerable endpoint:

    curl -s "http://target.com/wp-admin/admin-ajax.php?action=ninja_charts_get_data&chart_id=1"
    
  2. Extract sensitive data: The response may contain JSON with chart data, including embedded secrets. Example response:

    {
      "chart_id": 1,
      "title": "Sales Data",
      "data_source": "mysql://user:password@localhost/dbname",
      "api_key": "AIzaSyD...",
      "internal_path": "/var/www/html/wp-content/plugins/ninja-charts/"
    }
    
  3. Automate extraction:

    for id in $(seq 1 100); do
      curl -s "http://target.com/wp-admin/admin-ajax.php?action=ninja_charts_get_data&chart_id=$id"
    done
    

No public exploit code is available for this CVE.

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual requests to admin-ajax.php with the action=ninja_charts_get_data parameter from unauthenticated users.
  • Look for repeated requests with sequential chart_id values (brute-force enumeration).

Defense:

  • Immediate: Disable or remove the Ninja Charts plugin until a patch is available.
  • Virtual Patching: Use a WAF to block requests to admin-ajax.php with action=ninja_charts_get_data from unauthenticated IPs.
  • Network Segmentation: Ensure WordPress sites are isolated from sensitive internal networks.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests to /wp-admin/admin-ajax.php with action=ninja_charts_get_data parameter.
  • Repeated requests with incremental chart_id values.
  • Unusual outbound connections from the WordPress server to attacker-controlled IPs after data exfiltration.

File IOCs:

  • Modified or suspicious files in /wp-content/plugins/ninja-charts/ directory.
  • Unexpected log entries in /var/log/apache2/access.log or /var/log/nginx/access.log showing the vulnerable endpoint.

System IOCs:

  • Unauthorized user accounts created on the WordPress site.
  • New cron jobs or scheduled tasks that exfiltrate data.

Detection Engineering

YARA Rule

rule CVE_2025_58797_Ninja_Charts_Exploit {
    meta:
        description = "Detects exploitation attempts of CVE-2025-58797 in Ninja Charts plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-58797"
    strings:
        $ajax_action = "action=ninja_charts_get_data"
        $chart_id = "chart_id="
        $wp_admin = "/wp-admin/admin-ajax.php"
    condition:
        all of them
}

Sigma Rule

title: CVE-2025-58797 Ninja Charts Sensitive Data Exposure
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated requests to the Ninja Charts AJAX endpoint that may leak sensitive data.
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 'action=ninja_charts_get_data'
    condition: selection
falsepositives:
    - Legitimate admin users accessing the endpoint (should be rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-58797 Ninja Charts Sensitive Data Exposure"; flow:to_server; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=ninja_charts_get_data"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin: Deactivate and delete the Ninja Charts plugin from all WordPress installations.
  2. Review logs: Check web server logs for any suspicious requests to the vulnerable endpoint.
  3. Rotate secrets: If any API keys or database credentials were exposed, rotate them immediately.

Long-term Fix:

  • The vendor must release a patched version that adds proper authentication and authorization checks.
  • Until then, consider using an alternative chart plugin with active security support.

Virtual Patching (WAF Rule Example):

location ~ /wp-admin/admin-ajax.php {
    if ($args ~* "action=ninja_charts_get_data") {
        return 403;
    }
}

Monitoring:

  • Implement the provided Sigma and Suricata rules in your SIEM/IDS.
  • Regularly scan WordPress plugins for known vulnerabilities using tools like WPScan.

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.title:"Ninja Charts"
http.html:"ninja-charts"

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