# CVE-2025-24016: Wazuh Server Deserialization of Untrusted Data Vulnerability - Exploited (CISA KEV): yes, added 2025-06-10 - Published: 2025-02-10 - CVSS: 9.9 CRITICAL (v3.1) - EPSS: 93.8% (100th percentile) - CWE: CWE-502 Wazuh is a free and open source platform used for threat prevention, detection, and response. Starting in version 4.4.0 and prior to version 4.9.1, an unsafe deserialization vulnerability allows for remote code execution on Wazuh servers. DistributedAPI parameters are a serialized as JSON and deserialized using `as_wazuh_object` (in `framework/wazuh/core/cluster/common.py`). If an attacker manages to inject an unsanitized dictionary in DAPI request/response, they can forge an unhandled exception (`__unhandled_exc__`) to evaluate arbitrary python code. The vulnerability can be triggered by anybody with API access (compromised dashboard or Wazuh servers in the cluster) or, in certain configurations, even by a compromised agent. Version 4.9.1 contains a fix. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Blocks by default | 2025-08-11 | 182 | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | No public claim | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2025-03-11 | 29 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### Cloudflare - 2025-08-11 · new · rule 7fdb3c7bc7b74703aeef4ab240ec2fda · default Block > Wazuh Server - Remote Code Execution - CVE:CVE-2025-24016. Previous action: Log. New action: Block. This is a New Detection Source: https://developers.cloudflare.com/changelog/post/2025-08-11-waf-release/ ### F5 - 2025-03-11 · new · rule 200204004 > Added: signature 200204004 "Wazuh Server Remote Code Execution" (Server Side Code Injection, risk High), systems: Other Web Server, Python. References: CVE-2025-24016. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: passed (0 of 2 requests blocked), template CVE-2025-24016, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: passed (0 of 2 requests blocked), template CVE-2025-24016, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2025-24016 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2025-24016