CVE-2024-5993
Executive Summary
CVE-2024-5993 is a medium-severity vulnerability in the Cliengo – Chatbot plugin for WordPress, affecting all versions up to and including 3.0.2. The issue stems from a missing capability check on the update_session function, allowing authenticated attackers with Subscriber-level access or higher to modify the chatbot’s session token. This unauthorized modification can lead to session hijacking, data manipulation, or disruption of chatbot functionality. The vulnerability is classified under CWE-862 (Missing Authorization) and has a CVSS score of 5.4. No public proof-of-concept (PoC) or exploit code is currently available, 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
WordPress Ecosystem Context
This vulnerability specifically targets the Cliengo plugin within the WordPress ecosystem. It is not related to Apache or Nginx server software. The plugin’s update_session function lacks proper authorization checks, enabling low-privileged users to alter session data.
CVSS Breakdown & Threat Level
- CVSS Score: 5.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Subscriber-level)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: Low
- Availability Impact: Low
The threat level is moderate due to the low privileges required and the potential for session manipulation, which could lead to further attacks.
Deep Dive & Mechanics
The vulnerability resides in the update_session function of the Cliengo plugin. This function is intended to update the chatbot’s session token, but it lacks a capability check to verify that the requesting user has the necessary permissions (e.g., admin-level). As a result, any authenticated user with Subscriber-level access or above can call this function via a crafted HTTP request.
The session token is used to authenticate the chatbot with Cliengo’s backend services. By modifying the token, an attacker could:
- Hijack an active chatbot session.
- Inject malicious data into the chatbot’s context.
- Disrupt the chatbot’s operation by setting an invalid token.
The attack is performed by sending a POST request to the WordPress REST API endpoint associated with the update_session function, with the new session token as a parameter.
Vulnerable vs. Patched Code
Vulnerable Code (<= 3.0.2):
function update_session() {
// No capability check
$session_token = $_POST['session_token'];
update_option('cliengo_session_token', $session_token);
wp_send_json_success();
}
Patched Code (Hypothetical):
function update_session() {
if (!current_user_can('manage_options')) {
wp_send_json_error('Unauthorized', 403);
return;
}
$session_token = sanitize_text_field($_POST['session_token']);
update_option('cliengo_session_token', $session_token);
wp_send_json_success();
}
The patched version adds a capability check (current_user_can('manage_options')) to restrict access to administrators only, and sanitizes the input.
Exploitation & Lab Setup
Red Team
- Prerequisites: Authenticated WordPress account with Subscriber-level access.
- Identify Endpoint: Use browser developer tools or a proxy to find the REST API endpoint for
update_session(e.g.,/wp-json/cliengo/v1/update_session). - Craft Request:
curl -X POST https://target-site.com/wp-json/cliengo/v1/update_session \ -H "Cookie: wordpress_logged_in_<hash>=<session_cookie>" \ -d "session_token=attacker_controlled_token" - Verify: Check if the session token is updated by accessing the chatbot or querying the option.
Blue Team
- Monitor Logs: Look for unusual POST requests to
/wp-json/cliengo/v1/update_sessionfrom non-admin users. - Audit User Roles: Review all Subscriber-level accounts for suspicious activity.
- Harden Plugin: Disable the plugin until a patch is available, or implement a custom capability check via a WordPress filter.
Indicators of Compromise (IOCs)
- Network: POST requests to
/wp-json/cliengo/v1/update_sessionwith asession_tokenparameter. - Logs: WordPress debug log entries showing
update_sessioncalls from unexpected user roles. - Database: Modified
cliengo_session_tokenoption in thewp_optionstable. - File: Unusual entries in the plugin’s log files (if enabled).
Detection Engineering
YARA Rule
rule CVE_2024_5993_Cliengo_Session_Modification {
meta:
description = "Detects exploitation attempts of CVE-2024-5993 in Cliengo plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-5993"
strings:
$endpoint = "/wp-json/cliengo/v1/update_session"
$token_param = "session_token="
condition:
any of them
}
Sigma Rule
title: CVE-2024-5993 Cliengo Session Token Modification
id: 8a3f7c2e-5d1b-4a9e-8c6f-2b3d1e0f4a7c
status: experimental
description: Detects HTTP POST requests to the Cliengo update_session endpoint
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-query|contains: "/wp-json/cliengo/v1/update_session"
condition: selection
falsepositives:
- Legitimate admin updates (rare)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-5993 Cliengo Session Token Modification"; flow:to_server; content:"POST"; http_method; content:"/wp-json/cliengo/v1/update_session"; http_uri; content:"session_token="; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Cliengo plugin if not essential, or restrict access to the
update_sessionendpoint via a web application firewall (WAF) rule. - Short-term: Apply a custom patch by adding a capability check to the
update_sessionfunction (see patched code above). - Long-term: Monitor the vendor’s website for an official patch and update to the latest version once available.
- General: Implement the principle of least privilege for WordPress user roles and regularly audit plugin permissions.
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.