Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Anyone can submit a fork PR (AV:N/PR:N/AC:L) but a maintainer must run the workflow (UI:R); runner and cloud-secret compromise crosses the security boundary, so S:C with full C:H/I:H/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
6DescriptionCVE.org
Wazuh workflows before 44bf114 contain a shell injection vulnerability in GitHub Actions that allows attackers to execute arbitrary commands by submitting pull requests with crafted VERSION.json files. Attackers can inject shell metacharacters into environment variables that are directly interpolated into run steps, enabling command execution and exfiltration of secrets including GITHUB_TOKEN and AWS credentials on self-hosted runners.
AnalysisAI
Poisoned-pipeline command injection in Wazuh's GitHub Actions CI/CD workflows (all revisions before commit 44bf114) lets an unauthenticated external attacker run arbitrary shell commands on the project's self-hosted runners by submitting a fork pull request containing a crafted VERSION.json. Because the JSON is read into environment variables that are interpolated verbatim into workflow run steps, shell metacharacters break out into command execution, permitting theft of CI secrets such as GITHUB_TOKEN and AWS credentials. There is no public exploit identified at time of analysis, but the technique (untrusted fork input on self-hosted runners) is well-understood and the vendor has already merged a fix.
Technical ContextAI
This is a classic CI/CD supply-chain weakness known as Poisoned Pipeline Execution, rooted in CWE-78 (OS Command Injection). GitHub Actions workflows that trigger on the pull_request (or pull_request_target) event process content from forked branches; here a VERSION.json file supplied by the attacker is parsed and its values are placed into environment variables that are then substituted directly into a run: shell step using GitHub's ${{ }} template expansion. Because template expansion happens before the shell executes, any shell metacharacters (;, $( ), backticks, &&) in the attacker-controlled value are interpreted by the runner's shell rather than treated as data. The affected asset per CPE is cpe:2.3:a:wazuh:wazuh (the Wazuh project repository/build tooling), and the exposure is amplified by the use of self-hosted runners, which - unlike GitHub-hosted ephemeral VMs - persist state, sit inside the maintainer's network, and typically hold long-lived cloud credentials.
RemediationAI
Upstream fix available (PR/commit 44bf114); a released/tagged patched version was not independently confirmed from the provided data, so update the workflow files by pulling changes at or after commit 44bf114 as described in advisory GHSA-95w2-gpvr-q4jh (https://github.com/wazuh/wazuh/security/advisories/GHSA-95w2-gpvr-q4jh). The correct structural fix is to stop interpolating untrusted values directly into run: steps: pass attacker-controllable data through an intermediate env: variable and reference it as a quoted shell variable ("$VAR") instead of ${{ ... }}, so the shell treats it as data. As compensating controls before or alongside patching: require the 'Require approval for all outside collaborators' setting so fork PR workflows never auto-run (trade-off: adds maintainer friction to every external contribution); move CI off self-hosted runners onto ephemeral GitHub-hosted runners where feasible (trade-off: loses custom build environment/network access); and scope down runner credentials by removing standing AWS keys in favor of short-lived OIDC-federated tokens and setting permissions: to the minimum, ideally read-only GITHUB_TOKEN (trade-off: workflows that push artifacts or comment on PRs must be granted narrower explicit permissions).
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
Arbitrary file deletion on a Wazuh manager via the cluster synchronization protocol allows a cluster-authenticated attac
CVE-2024-1243 is an improper input validation vulnerability in Wazuh agent for Windows (versions prior to 4.8.0) that al
Same weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51853
GHSA-9chj-cp8j-3c5f