CVE-2025-67563
Executive Summary
CVE-2025-67563 is a Missing Authorization vulnerability in the Post SMTP WordPress plugin by Saad Iqbal, affecting versions from n/a through 3.6.1. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to sensitive plugin functionality. The vulnerability has a CVSS score of 5.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation activity in the wild. As a WordPress plugin issue, this vulnerability is specific to the WordPress ecosystem and does not involve Apache or Nginx.
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. Users should verify the integrity of their plugin files and ensure they are sourced from trusted channels. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- CVSS Score: 5.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
The threat level is considered Medium due to the low complexity and no required privileges, but the impact is limited to confidentiality.
Deep Dive & Mechanics
The vulnerability resides in the Post SMTP plugin's access control mechanisms. The plugin fails to properly enforce authorization checks on certain administrative functions, allowing unauthenticated attackers to access or manipulate SMTP configuration settings. This could lead to disclosure of sensitive information such as SMTP credentials or email logs.
The root cause is a missing capability check in REST API endpoints or AJAX handlers, which should verify that the requesting user has the necessary permissions (e.g., manage_options). Without this check, any user (including unauthenticated visitors) can trigger privileged actions.
Vulnerable vs. Patched Code
Since no official patch is available, the vulnerable code pattern is described below.
Vulnerable Code (Example):
add_action('wp_ajax_nopriv_post_smtp_get_settings', 'post_smtp_get_settings');
function post_smtp_get_settings() {
// No capability check
$settings = get_option('post_smtp_settings');
wp_send_json($settings);
}
Patched Code (Expected):
add_action('wp_ajax_post_smtp_get_settings', 'post_smtp_get_settings');
function post_smtp_get_settings() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$settings = get_option('post_smtp_settings');
wp_send_json($settings);
}
The patch adds a capability check (current_user_can('manage_options')) and removes the nopriv_ prefix to restrict access to authenticated administrators.
Exploitation & Lab Setup
Red Team
To exploit this vulnerability, an attacker can send a crafted HTTP request to the vulnerable endpoint. Since no public exploit code is available, a generic proof-of-concept is provided.
Proof-of-Concept (cURL):
curl -X GET "http://target.com/wp-admin/admin-ajax.php?action=post_smtp_get_settings"
If the endpoint is vulnerable, the response will contain the SMTP settings in JSON format.
Lab Setup:
- Install WordPress with the Post SMTP plugin version 3.6.1.
- Ensure the plugin is activated and configured with dummy SMTP credentials.
- Send the above cURL request from an unauthenticated client.
- Observe the returned settings.
Blue Team
To detect exploitation attempts, monitor for unauthorized access to AJAX endpoints associated with Post SMTP. The following Sigma rule can be used.
Sigma Rule:
title: Unauthorized Post SMTP AJAX Access
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects unauthenticated access to Post SMTP AJAX endpoints
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: GET
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=post_smtp'
condition: selection
falsepositives:
- Legitimate admin access (should be authenticated)
level: medium
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-admin/admin-ajax.phpwithaction=post_smtp_*parameters from unauthenticated sources. - Unusual outbound connections from the WordPress server to external SMTP servers (if credentials are exfiltrated).
- HTTP requests to
File IOCs:
- Modified or new files in
/wp-content/plugins/post-smtp/directory. - Suspicious entries in WordPress debug logs (
wp-content/debug.log).
- Modified or new files in
Log IOCs:
- Repeated 403 errors followed by successful 200 responses on AJAX endpoints.
- Access logs showing
admin-ajax.phprequests without a validwpnonceor cookie.
Detection Engineering
YARA Rule
rule Post_SMTP_Missing_Auth {
meta:
description = "Detects missing authorization in Post SMTP plugin files"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-67563"
strings:
$vuln_func = "wp_ajax_nopriv_post_smtp" nocase
$no_check = "current_user_can" nocase
condition:
$vuln_func and not $no_check
}
Sigma Rule
title: Post SMTP Unauthenticated AJAX Access
id: 87654321-4321-4321-4321-210987654321
status: experimental
description: Detects unauthenticated access to Post SMTP AJAX endpoints
logsource:
category: webserver
product: nginx
detection:
selection:
request_method: GET
request_uri|contains: '/wp-admin/admin-ajax.php'
request_uri|contains: 'action=post_smtp'
condition: selection
falsepositives:
- Legitimate admin access
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67563 Post SMTP Missing Authorization Attempt"; flow:to_server; http.method; content:"GET"; http.uri; content:"/wp-admin/admin-ajax.php"; content:"action=post_smtp"; distance:0; within:100; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Since no official patch is available, the following mitigations are recommended:
- Disable the plugin until a patch is released by the vendor.
- Implement a Web Application Firewall (WAF) rule to block unauthenticated requests to
admin-ajax.phpwithaction=post_smtp_*parameters. - Restrict access to
/wp-admin/directory using.htaccessor server configuration. - Monitor logs for suspicious activity as described in the Detection Engineering section.
- Apply virtual patching via security plugins like Wordfence or Sucuri.
Valters IT
Securing Digital Frontiers
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.