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

CVE-2025-24695

CVE-2025-24695 Server-Side Request Forgery in Hasthemes
📅 PUBLISHED: 2025-01-24 18: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.05%
👁️
0.05% probability
1.3× 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 4.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: L Availability Low
4.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-24695 is a Server-Side Request Forgery (SSRF) vulnerability in the WordPress plugin "Extensions For CF7" by HT Plugins (Hasthemes). This flaw allows an authenticated attacker with low privileges to make the vulnerable server send crafted HTTP requests to internal or external resources, potentially leading to information disclosure or internal network reconnaissance. The vulnerability affects all versions up to and including 3.2.0. 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 resides in a WordPress plugin distributed via the official WordPress plugin repository. Users who have installed "Extensions For CF7" from the WordPress dashboard or via direct download are affected. The plugin is not distributed via NPM, PyPI, Go, or Ruby ecosystems.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L
  • Base Score: 4.4 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L) – requires authenticated user with subscriber role or higher.
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L) – limited internal resource disclosure.
  • Integrity Impact: None (I:N)
  • Availability Impact: Low (A:L) – potential for limited denial of service via resource exhaustion.

Threat Level: Medium. While the CVSS score is moderate, SSRF can be chained with other vulnerabilities (e.g., cloud metadata access) to escalate impact.

Deep Dive & Mechanics

The vulnerability exists in the extensions-for-cf7 plugin's handling of user-supplied URLs. The plugin likely provides functionality to fetch external resources (e.g., for form validation or data enrichment) without proper validation of the target URL. An attacker can supply a URL pointing to internal services (e.g., http://169.254.169.254/ for cloud metadata, http://localhost/ for local services) or external malicious servers.

Root Cause: The plugin fails to sanitize or restrict the URL scheme, host, or port in the request. This allows an attacker to bypass intended restrictions and force the server to make requests to arbitrary destinations.

Attack Flow:

  1. Attacker authenticates to the WordPress site (e.g., as a subscriber).
  2. Attacker crafts a malicious request to the vulnerable endpoint (e.g., wp-admin/admin-ajax.php?action=cf7_extensions_fetch_url&url=http://169.254.169.254/latest/meta-data/).
  3. The server processes the request and makes an HTTP request to the attacker-specified URL.
  4. The response is returned to the attacker, revealing internal data.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the plugin's AJAX handler. A typical vulnerable pattern might look like:

// Vulnerable code (hypothetical)
function cf7_extensions_fetch_url() {
    $url = $_GET['url'];
    $response = wp_remote_get($url); // No validation
    echo wp_remote_retrieve_body($response);
    wp_die();
}
add_action('wp_ajax_cf7_extensions_fetch_url', 'cf7_extensions_fetch_url');
add_action('wp_ajax_nopriv_cf7_extensions_fetch_url', 'cf7_extensions_fetch_url');

A patched version would include URL validation:

// Patched code (hypothetical)
function cf7_extensions_fetch_url() {
    $url = $_GET['url'];
    $parsed_url = wp_parse_url($url);
    // Allow only specific external domains
    $allowed_hosts = array('api.example.com', 'trusted-service.com');
    if (!in_array($parsed_url['host'], $allowed_hosts)) {
        wp_die('Invalid URL');
    }
    $response = wp_remote_get($url);
    echo wp_remote_retrieve_body($response);
    wp_die();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A WordPress site with "Extensions For CF7" <= 3.2.0 installed and activated.
  • Valid user credentials (subscriber or higher).

Exploitation Steps:

  1. Identify the vulnerable endpoint: The plugin likely registers an AJAX action. Use a tool like Burp Suite or curl to probe:

    curl -v "http://target.com/wp-admin/admin-ajax.php?action=cf7_extensions_fetch_url&url=http://169.254.169.254/latest/meta-data/"
    
  2. If the endpoint is found, extract internal data:

    curl -s "http://target.com/wp-admin/admin-ajax.php?action=cf7_extensions_fetch_url&url=http://127.0.0.1/wp-config.php"
    
  3. For cloud environments, access metadata:

    curl -s "http://target.com/wp-admin/admin-ajax.php?action=cf7_extensions_fetch_url&url=http://169.254.169.254/latest/meta-data/iam/security-credentials/admin"
    

Note: No public exploit code is available at this time.

Blue Team

Detection Steps:

  1. Monitor for unusual AJAX requests to admin-ajax.php with parameters containing action=cf7_extensions_fetch_url and suspicious url values.
  2. Look for outbound HTTP requests from the web server to internal IP addresses (e.g., 10.x.x.x, 172.16.x.x, 192.168.x.x, 169.254.x.x).
  3. Check web server logs for requests to admin-ajax.php with url parameters containing internal IPs or cloud metadata endpoints.

Honeypot Setup:

  • Deploy a fake internal service (e.g., a simple HTTP server on port 8080) and monitor for connections from the WordPress server.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Outbound HTTP requests from the WordPress server to internal IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16).
    • Requests to cloud metadata endpoints (e.g., http://169.254.169.254/).
    • Requests to localhost or 127.0.0.1.
  • File IOCs:

    • Modified or suspicious entries in WordPress debug logs (wp-content/debug.log).
    • Unusual entries in web server access logs (e.g., Apache access.log or Nginx access.log).
  • Behavioral IOCs:

    • Unusual AJAX requests from low-privileged users.
    • Spike in outbound HTTP traffic from the web server.

Detection Engineering

YARA Rule

rule CVE_2025_24695_SSRF_Extensions_For_CF7 {
    meta:
        description = "Detects SSRF exploitation attempts against CVE-2025-24695 in Extensions For CF7 plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-24695"
    strings:
        $ajax_action = "action=cf7_extensions_fetch_url"
        $url_param = "url=http"
        $internal_ip = /url=http:\/\/(127\.0\.0\.1|localhost|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})/
    condition:
        $ajax_action and $url_param and $internal_ip
}

Sigma Rule

title: CVE-2025-24695 SSRF Exploitation via Extensions For CF7
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SSRF attempts against CVE-2025-24695 in WordPress Extensions For CF7 plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-uri-query|contains: 'action=cf7_extensions_fetch_url'
        cs-uri-query|contains: 'url=http'
    filter:
        cs-uri-query|contains:
            - 'url=http://api.example.com'
            - 'url=http://trusted-service.com'
    condition: selection and not filter
falsepositives:
    - Legitimate use of the plugin's intended functionality (if any)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-24695 SSRF Exploitation - Extensions For CF7"; flow:to_server,established; content:"admin-ajax.php"; http_uri; content:"action=cf7_extensions_fetch_url"; http_uri; content:"url=http"; http_uri; pcre:"/url=http:\/\/(127\.0\.0\.1|localhost|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})/Ri"; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is available. Navigate to Plugins > Installed Plugins and deactivate "Extensions For CF7".
  2. Implement a Web Application Firewall (WAF) rule to block requests containing action=cf7_extensions_fetch_url with internal IP addresses in the url parameter.
  3. Restrict outbound traffic from the web server using firewall rules (e.g., block outbound connections to internal IP ranges from the web server).

Long-term Fix:

  • Monitor the plugin's official page for a security update. Once patched, update to the latest version immediately.
  • Consider replacing the plugin with an alternative that has a better security track record.

Workaround:

  • If the plugin is critical, modify the code to add URL validation (see patched code example above). However, this is not recommended for production without thorough testing.

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:"Extensions For CF7"
http.html:"extensions-for-cf7"

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