CVE-2025-22512
Executive Summary
CVE-2025-22512 is a Missing Authorization vulnerability in the BoldGrid Help Scout WordPress plugin, affecting versions up to and including 6.5.6. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data access or modification. The vulnerability is classified as a WordPress ecosystem issue, specifically within the plugin's permission handling logic. With a CVSS score of 4.3 (Medium), the risk is moderate but significant due to the lack of required authentication for exploitation. No public proof-of-concept (PoC) or exploit code has been released, and the patch status remains unknown.
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 monitor for updates from the vendor. No known supply chain compromise has been reported.
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) – Impact confined to the vulnerable component.
- Confidentiality Impact (C): None (N) – No data exposure.
- Integrity Impact (I): Low (L) – Limited modification possible.
- Availability Impact (A): None (N) – No denial of service.
Threat Level: Medium (4.3). Exploitation is straightforward but impact is limited to integrity.
Deep Dive & Mechanics
The vulnerability resides in the BoldGrid Help Scout plugin's access control implementation. The plugin fails to properly validate user permissions when processing certain AJAX requests or REST API endpoints. Specifically, the help-scout plugin uses a nonce-based check that can be bypassed due to missing capability verification. An attacker can craft a malicious request to trigger administrative functions without authentication.
Root Cause: The plugin uses wp_verify_nonce() but does not subsequently check user capabilities (e.g., current_user_can()). This allows any request with a valid nonce (which can be obtained from public pages) to execute privileged actions.
Attack Vector: Unauthenticated HTTP requests to vulnerable endpoints, such as /wp-admin/admin-ajax.php?action=help_scout_update_settings.
Vulnerable vs. Patched Code
Vulnerable Code (<= 6.5.6):
add_action('wp_ajax_help_scout_update_settings', 'help_scout_update_settings');
function help_scout_update_settings() {
if (!wp_verify_nonce($_POST['_wpnonce'], 'help_scout_nonce')) {
wp_die('Security check failed');
}
// No capability check here
update_option('help_scout_settings', $_POST['settings']);
wp_die('Settings updated');
}
Patched Code (Hypothetical):
add_action('wp_ajax_help_scout_update_settings', 'help_scout_update_settings');
function help_scout_update_settings() {
if (!wp_verify_nonce($_POST['_wpnonce'], 'help_scout_nonce') || !current_user_can('manage_options')) {
wp_die('Security check failed');
}
update_option('help_scout_settings', $_POST['settings']);
wp_die('Settings updated');
}
The patch adds current_user_can('manage_options') to ensure only administrators can modify settings.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites: A WordPress site with Help Scout plugin <= 6.5.6.
Exploit Steps:
- Obtain a valid nonce by visiting any public page that includes the plugin's nonce field (e.g., via form hidden input).
- Send a crafted POST request to
/wp-admin/admin-ajax.phpwith the actionhelp_scout_update_settingsand the stolen nonce. - Modify plugin settings to inject malicious JavaScript or redirect users.
Example cURL Command:
curl -X POST http://target.com/wp-admin/admin-ajax.php \
-d "action=help_scout_update_settings&_wpnonce=STOLEN_NONCE&settings[redirect_url]=http://evil.com"
Blue Team (Defensive)
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpwith actionhelp_scout_update_settingsfrom unauthenticated users. - Check for unexpected changes to the
help_scout_settingsoption in the database.
Honeypot: Deploy a fake endpoint that logs all requests and alerts on nonce reuse.
Indicators of Compromise (IOCs)
- Network: POST requests to
/wp-admin/admin-ajax.phpwithaction=help_scout_update_settingsand noCookieheader. - File: Modified
help-scout/help-scout.phpor related files with altered permission checks. - Database: Unauthorized changes to
wp_optionstable whereoption_name = 'help_scout_settings'. - Log: WordPress debug log entries showing
wp_diecalls from the vulnerable function.
Detection Engineering
YARA Rule
rule CVE_2025_22512_HelpScout_MissingAuth {
meta:
description = "Detects vulnerable Help Scout plugin code with missing authorization"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-22512"
strings:
$func = "help_scout_update_settings" ascii wide
$nonce_check = "wp_verify_nonce" ascii wide
$no_cap = "current_user_can" ascii wide
condition:
$func and $nonce_check and not $no_cap
}
Sigma Rule
title: CVE-2025-22512 Help Scout Missing Authorization
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts against CVE-2025-22512
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri: '/wp-admin/admin-ajax.php'
cs-uri-query: 'action=help_scout_update_settings'
condition: selection
falsepositives:
- Legitimate admin actions (requires authentication)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-22512 Help Scout Missing Authorization Exploit"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=help_scout_update_settings"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Help Scout plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=help_scout_update_settingsfrom unauthenticated users. - Monitor logs for exploitation attempts.
Long-term Fix:
- Apply vendor patch when released (check WordPress plugin repository).
- Manually add
current_user_can('manage_options')check in the vulnerable function if comfortable editing PHP.
Workaround:
- Use a security plugin like Wordfence to add virtual patching for missing authorization vulnerabilities.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.