Wazuh
CVE-2026-54085
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess Wazuh-monitored log source with low privileges
-
DeliveryInject crafted syslog event containing malicious srcip or dstuser value
-
ExploitWazuh alert rule triggers active response script
-
ExecutionUnvalidated field value passed to root-executing OS command
-
PersistArbitrary arguments injected into firewall or account-management command
-
ImpactFirewall rules modified or system account locked
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
|
| Exploitation Conditions | Exploitation requires the attacker to control or inject content into a log source actively monitored by Wazuh-for example, a syslog daemon, a file Wazuh's agent tails, or a forwarded event stream. At least one active response rule must be configured in ossec.conf and must fire in response to the crafted event; active response is an opt-in feature requiring explicit rule-to-script binding, but is commonly enabled in production deployments. The CVSS PR:L vector indicates low-privilege authenticated access is required, consistent with the need to generate log events from a recognized or reachable source. For the srcip injection path, the triggering rule must invoke one of the five unpatched scripts (route-null, netsh, pf, npf, ipfw). For the dstuser path, the rule must invoke disable-account.c. The Windows-specific unquoted argument path requires the triggered script to be a Windows binary invoked through wpopenv(). Exploitation is constrained to deployments with active response enabled, a reachable log injection point, and applicable rule configurations-these deployment conditions materially limit the realistic at-risk population beyond what the raw CVSS score implies. |
| Impact | The CVSS 7.1 score (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L) accurately reflects network-reachable exploitation requiring only low-privilege access to a Wazuh-monitored log source, such as the ability to write syslog messages. The high integrity impact corresponds to the ability to inject arguments into root-executed firewall commands, and the low availability impact reflects the ability to lock arbitrary system accounts via disable-account.c. No EPSS score was present in the provided intelligence data, limiting probabilistic exploitation forecasting. This CVE is not in CISA KEV and no public exploit code has been identified, suggesting targeted risk rather than opportunistic mass exploitation. Real-world risk is elevated for any Wazuh deployment with active response rules enabled-a common production configuration-where an attacker can reach a monitored syslog endpoint. The dependency on active response being configured and a rule firing represents a meaningful environmental constraint not captured by the raw CVSS score. |
| Exploit ScenarioDerived | An attacker with access to a syslog source monitored by Wazuh sends a crafted log entry containing a srcip value of '1.2.3.4 -f /etc/some_config' or a dstuser value with embedded command characters. When a configured active response rule matches the event, Wazuh passes the unvalidated value to a root-executing command such as ipfw or passwd, injecting the extra tokens as additional arguments. On Windows, a srcip containing a space exploits wpopenv()'s unquoted CreateProcess concatenation to append attacker-controlled arguments to the spawned process command line, achieving the same result via a platform-specific code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Argument injection in Wazuh active response scripts (versions 4.2.0-4.14.6) allows a low-privileged network attacker who controls a monitored log source to inject arbitrary arguments into firewall and account-management commands executing as root. Five scripts handling the srcip alert field (route-null.c, netsh.c, pf.c, npf.c, ipfw.c) omit IP format validation, and disable-account.c passes the dstuser field to passwd/chuser with only a root-name check, enabling injection into pfctl, npfctl, ipfw, route, netsh, and passwd. On Windows, unquoted CreateProcess concatenation in wpopenv() amplifies the impact by allowing space-delimited srcip values to append additional process arguments. No public exploit code has been identified at time of analysis, and this CVE is not listed in CISA KEV.
RemediationAI
Upgrade Wazuh to version 4.14.7, which contains the complete fix introduced in commit b7f3a5e59000e4cdef75f397f1107ae3e1c186a9. The patch centralizes and enforces IP validation in get_srcip_from_json() for all active response scripts and adds a comprehensive is_valid_username() validator for the dstuser field. The advisory is available at https://github.com/wazuh/wazuh/security/advisories/GHSA-mvh4-g699-984j. If immediate upgrade is not possible, disabling active response entirely in ossec.conf via <active-response><disabled>yes</disabled></active-response> eliminates the attack surface at the cost of losing all automated threat response capabilities. As a narrower mitigation, restrict which network sources can deliver syslog to Wazuh-monitored daemons using host-based firewall rules or syslog ACLs, reducing the attacker's ability to inject crafted events; note this does not eliminate risk from compromised internal log forwarders.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Wazuh's active response subsystem automatically invokes scripts when alert conditions are matched, passing alert field values-including srcip and dstuser-directly to privileged OS commands. The root cause is CWE-88 (Argument Injection): five of eight affected scripts skip the get_ip_version() check that validates srcip as a legitimate IPv4 or IPv6 address via getaddrinfo() with AI_NUMERICHOST, while disable-account.c performs only a strcmp against 'root' before forwarding dstuser to passwd or chuser. The affected CPE is cpe:2.3:a:wazuh:wazuh:*:*:*:*:*:*:*:*. The fix commit (b7f3a5e) centralizes IP validation in get_srcip_from_json() and introduces is_valid_username(), which rejects empty strings, the reserved name 'root', usernames exceeding 256 characters, names starting with dash/plus/tilde, and characters including colons, commas, whitespace, slashes, and directory-traversal sequences. Windows builds additionally gain -lws2_32 linkage so the newly centralized get_ip_version() can call getaddrinfo() on that platform.
Know when Wazuh gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
AV:N for syslog-based injection delivery; PR:L for required log-source access; I:H for root-command argument injection; A:L for account-locking disruption; C:N as no data is exposed.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Wazuh is an open-source security platform providing unified XDR and SIEM protection for endpoints and cloud workloads. In versions 4.2.0 through 4.14.6, multiple active response scripts pass attacker-influenced alert fields to privileged system commands without validating their format, allowing argument injection into tools that run as root. Five of the eight scripts that handle the srcip field, route-null.c, netsh.c, pf.c, npf.c, and ipfw.c, omit the get_ip_version() check that rejects non-IP input, and disable-account.c passes the dstuser field to passwd/chuser with only a comparison against "root". An attacker who can inject crafted log events, for example via syslog, can supply srcip or dstuser values that, when an active response rule triggers, are passed unvalidated to firewall and account-management commands such as pfctl, npfctl, ipfw, route, netsh, and passwd. This enables injecting additional command arguments, and on Windows the unquoted CreateProcess command-line concatenation in wpopenv() lets a srcip containing spaces add further arguments, while disable-account.c can be abused to lock arbitrary system accounts. This issue is fixed in version 4.14.7.
Executive ViewAI
Wazuh active response scripts (versions 4.2.0-4.14.6) contain an argument injection flaw that allows attackers who control monitored log sources to execute arbitrary root-level commands affecting firewalls and account management systems. This creates risk of unauthorized network configuration changes, user account manipulation, and lateral movement across the infrastructure.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict write permissions on log sources fed to Wazuh to authenticated systems under strict access controls; (2) Disable active response scripts if not essential to operations; (3) Implement upstream log source validation and sanitization before ingestion into Wazuh; (4) Enable comprehensive logging and real-time alerts on firewall modifications and system account changes; (5) Require change approval workflows for firewall and account management actions as administrative compensating controls.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Affected Products (CPE)CVE.org
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
In the wazuh-slack active response script in Wazuh 4.2.x before 4.2.5, untrusted user agents are passed to a curl comman
Path-traversal-driven root code execution affects the Wazuh security platform's cluster synchronization layer in version
Arbitrary file read in Wazuh cluster deployments (4.0.0 through 4.14.5, and 5.0.0-beta1/beta2) lets a peer node that alr
Arbitrary file write leading to root remote code execution affects Wazuh worker nodes in clustered deployments running v
A critical deserialization vulnerability in Wazuh's cluster mode allows attackers with access to any worker node to achi
Remote code execution on the Wazuh cluster master node is achievable by any attacker who controls a cluster worker node,
Path traversal in Wazuh's ip-customblock active response script allows low-privileged remote attackers to create or dele
The agent in OSSEC through 3.1.0 on Windows allows local users to gain NT AUTHORITY\SYSTEM access via Directory Traversa
Cluster key disclosure in Wazuh Manager versions 4.0.0 through 4.14.4 enables a two-stage privilege escalation: a low-pr
Unauthenticated remote denial of service in the Wazuh cluster daemon (wazuh-clusterd) allows a network peer to exhaust p
Arbitrary file deletion on a Wazuh manager via the cluster synchronization protocol allows a cluster-authenticated attac
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB