CVE-2025-47635
Executive Summary
CVE-2025-47635 is a Server-Side Request Forgery (SSRF) vulnerability in the WordPress plugin WebinarPress (slug: wp-webinarsystem), affecting versions up to and including 1.33.28. The flaw allows an unauthenticated attacker to make the server send crafted HTTP requests to internal or external resources, potentially leading to information disclosure, internal network scanning, or further exploitation. The CVSS score is 5.5 (Medium), and no official patch has been released by the vendor. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for exposed WordPress installations.
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.
No signup required
Supply Chain & Package Security
This vulnerability resides in a WordPress plugin distributed via the official WordPress plugin repository. Users who installed the plugin via the WordPress dashboard or automated deployment tools are affected. No known malicious packages have been identified, but the lack of a patch increases supply chain risk for organizations relying on this plugin.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions 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): Low (L) – Limited information disclosure possible.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No denial of service.
Threat Level: Medium. While the CVSS score is moderate, SSRF can be chained with other vulnerabilities (e.g., internal service exploitation) to escalate impact.
Deep Dive & Mechanics
The vulnerability exists in the wp-webinarsystem plugin’s AJAX handler for webinar registration. The plugin fails to validate or sanitize user-supplied URLs passed to a server-side HTTP request function. An attacker can craft a request to the vulnerable endpoint, specifying an arbitrary URL (e.g., http://169.254.169.254/latest/meta-data/ for cloud metadata) that the server will fetch and return the response.
Root Cause: The plugin uses wp_remote_get() or similar functions with user-controlled input without proper URL validation or allowlisting.
Attack Flow:
- Attacker identifies a WordPress site with WebinarPress installed.
- Attacker sends a POST request to
/wp-admin/admin-ajax.phpwith action parameterwpws_registerand a craftedwebinar_urlparameter pointing to an internal resource. - The server executes the request and returns the response to the attacker.
Vulnerable vs. Patched Code
Vulnerable Code (simplified):
add_action('wp_ajax_nopriv_wpws_register', 'wpws_register_callback');
function wpws_register_callback() {
$url = $_POST['webinar_url'];
$response = wp_remote_get($url);
echo wp_remote_retrieve_body($response);
wp_die();
}
Patched Code (hypothetical):
add_action('wp_ajax_nopriv_wpws_register', 'wpws_register_callback');
function wpws_register_callback() {
$url = esc_url_raw($_POST['webinar_url']);
if (wp_http_validate_url($url) && !wp_http_is_internal_url($url)) {
$response = wp_remote_get($url);
echo wp_remote_retrieve_body($response);
} else {
echo 'Invalid URL';
}
wp_die();
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress instance with WebinarPress <= 1.33.28.
- Network access to the target.
Exploitation Steps:
- Identify the vulnerable endpoint:
curl -s "http://target/wp-admin/admin-ajax.php" -d "action=wpws_register&webinar_url=http://169.254.169.254/latest/meta-data/" - If successful, the response will contain cloud metadata (e.g., AWS IAM credentials).
- For internal network scanning, use:
curl -s "http://target/wp-admin/admin-ajax.php" -d "action=wpws_register&webinar_url=http://192.168.1.1:80/"
Note: No public exploit code is available; the above is a conceptual demonstration.
Blue Team
Detection & Response:
- Monitor for unusual
admin-ajax.phprequests withaction=wpws_registerand suspiciouswebinar_urlparameters. - Block outbound requests to internal IP ranges (RFC 1918) from the web server.
- Implement Web Application Firewall (WAF) rules to filter SSRF patterns.
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound HTTP requests from the web server to internal IPs (e.g., 10.x.x.x, 172.16.x.x, 192.168.x.x).
- Requests to cloud metadata endpoints (e.g.,
169.254.169.254).
- File IOCs:
- Modified
wp-content/plugins/wp-webinarsystem/files (if attacker uploads webshell).
- Modified
- Log IOCs:
- Repeated
admin-ajax.phprequests withaction=wpws_registerand non-standardwebinar_urlvalues.
- Repeated
Detection Engineering
YARA Rule
rule CVE_2025_47635_WebinarPress_SSRF {
meta:
description = "Detects SSRF exploitation attempts against WebinarPress plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-47635"
strings:
$ajax_action = "action=wpws_register"
$url_param = "webinar_url="
$internal_ip = /(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\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: WebinarPress SSRF Exploitation Attempt
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects SSRF attempts against WebinarPress plugin via admin-ajax.php
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: 'admin-ajax.php'
cs-uri-query|contains: 'action=wpws_register'
cs-uri-query|contains: 'webinar_url='
cs-uri-query|re: '(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})'
condition: selection
falsepositives:
- Legitimate use of external webinar URLs (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-47635 WebinarPress SSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"action=wpws_register"; http_client_body; content:"webinar_url="; http_client_body; pcre:"/(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\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:
- Disable the WebinarPress plugin if not critical to operations.
- Implement a Web Application Firewall (WAF) rule to block requests containing
webinar_url=with internal IP patterns. - Restrict outbound HTTP traffic from the web server using firewall rules (e.g., allow only necessary external domains).
Long-term Fix:
- Since no patch is available, consider migrating to an alternative webinar plugin.
- Monitor the vendor’s repository for updates and apply immediately when released.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.