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

CVE-2025-22305 Local File Inclusion in Essential plugin
📅 PUBLISHED: 2025-01-07 11:15 UTC 🔄 UPDATED: 2026-08-18 18:54 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× 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 6.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
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-22305 is a PHP Local File Inclusion (LFI) vulnerability in the WordPress plugin Hero Banner Ultimate, affecting versions up to and including 1.4.4. The vulnerability stems from improper control of a filename used in a PHP include or 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 6.5 (Medium), with a high confidentiality impact. No public proof-of-concept (PoC) or patch is currently available.

⚡ 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 distributed via the official WordPress plugin repository. Users are advised to monitor the plugin's page for updates and consider disabling the plugin until a patch is released. The plugin is not available via NPM, PyPI, Go, or Ruby ecosystems.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The vulnerable component and the affected resource are the same.
  • Confidentiality (C): High (H) – Full file read access is possible.
  • Integrity (I): None (N) – No file modification.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. While the CVSS score is 6.5, the lack of authentication and potential for reading sensitive files (e.g., wp-config.php) elevates the risk for WordPress sites.

Deep Dive & Mechanics

The vulnerability exists in the hero-banner-ultimate plugin due to unsanitized user input being passed to a PHP include() or require() function. The plugin likely uses a parameter (e.g., page, file, or template) to load dynamic content. An attacker can manipulate this parameter to include arbitrary files from the server's filesystem.

Example vulnerable code pattern:

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

By providing a path traversal sequence like ../../../../etc/passwd%00, the attacker can include arbitrary files (null byte injection may be required in older PHP versions). The plugin's version <= 1.4.4 does not properly validate or sanitize the filename.

Vulnerable vs. Patched Code

Vulnerable Code (<= 1.4.4):

// No sanitization or validation
$template = $_GET['template'];
include( plugin_dir_path( __FILE__ ) . 'templates/' . $template . '.php' );

Patched Code (hypothetical):

$allowed_templates = array('default', 'custom', 'fullwidth');
$template = $_GET['template'];
if (in_array($template, $allowed_templates)) {
    include( plugin_dir_path( __FILE__ ) . 'templates/' . $template . '.php' );
} else {
    // Default template
    include( plugin_dir_path( __FILE__ ) . 'templates/default.php' );
}

The patched version uses a whitelist approach to restrict included files to a predefined set.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A WordPress site with Hero Banner Ultimate <= 1.4.4 installed and activated.
  • Knowledge of the vulnerable parameter (e.g., template).

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., /wp-content/plugins/hero-banner-ultimate/includes/class-frontend.php?template=...).
  2. Use path traversal to read sensitive files:
    GET /wp-content/plugins/hero-banner-ultimate/includes/class-frontend.php?template=../../../../wp-config
    
    (Note: The .php extension is appended automatically.)
  3. If null byte injection is needed (PHP < 5.3.4):
    GET /wp-content/plugins/hero-banner-ultimate/includes/class-frontend.php?template=../../../../wp-config%00
    

Expected Output: The contents of wp-config.php (database credentials, salts, etc.).

Blue Team

Detection:

  • Monitor web server logs for suspicious template parameters containing ../ or %00.
  • Look for requests to the plugin's frontend class file with unusual parameters.

Hunting:

  • Search for hero-banner-ultimate in installed plugins.
  • Check for any recent file inclusion attempts in access logs.

Lab Setup:

  • Use a local WordPress installation with the vulnerable plugin.
  • Simulate exploitation using curl or Burp Suite.
  • Verify detection by reviewing logs and IDS alerts.

Indicators of Compromise (IOCs)

  • File Paths: /wp-content/plugins/hero-banner-ultimate/includes/class-frontend.php
  • URL Parameters: template=../../../../etc/passwd or similar path traversal patterns.
  • Log Entries: HTTP requests with ../ sequences in the template parameter.
  • Network: Outbound connections from the web server to attacker-controlled hosts (if RFI is possible, though this is LFI).

Detection Engineering

YARA Rule

rule Detect_Hero_Banner_Ultimate_LFI {
    meta:
        description = "Detects attempts to exploit CVE-2025-22305 in Hero Banner Ultimate plugin"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-22305"
    strings:
        $param = "template="
        $traversal = "../"
        $nullbyte = "%00"
    condition:
        $param and ($traversal or $nullbyte)
}

Sigma Rule

title: Hero Banner Ultimate LFI Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects path traversal attempts in Hero Banner Ultimate plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        c-uri|contains: 
            - 'template=../'
            - 'template=%00'
    condition: selection
falsepositives:
    - Legitimate use of similar patterns (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-22305 Hero Banner Ultimate LFI Attempt"; flow:to_server,established; content:"template="; http_uri; content:"../"; distance:0; within:100; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. Implement a Web Application Firewall (WAF) rule to block path traversal patterns in the template parameter.
  3. Review server logs for any signs of exploitation.

Long-term Fix:

  • The vendor must release a patched version that uses a whitelist of allowed templates.
  • Alternatively, apply input validation and sanitization to the template parameter.

Workaround:

  • If the plugin is critical, modify the code manually to restrict included files (see patched code example).

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:"Hero Banner Ultimate"
http.html:"hero-banner-ultimate"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-22305/ · 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.