CVE-2024-3566
Critical · 9.8CVSS
9.8
EPSS
6.8%
Published
Apr 10, 2024
CISA due date
—
Cloudanix analysis
Some Windows applications may let attackers turn ordinary input into commands that run on the server, potentially giving them control of the system.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
This vulnerability is a Windows-specific command injection issue in applications that create child processes through APIs or language runtimes that ultimately rely on CreateProcess. Under specific conditions, especially when an application launches batch/script commands or passes attacker-controlled arguments to spawned processes, Windows command-line parsing and shell invocation behavior can cause untrusted input to be interpreted as command syntax rather than as data. Successful exploitation allows an unauthenticated remote attacker, where the vulnerable application exposes a reachable input path, to execute arbitrary operating-system commands with the privileges of the affected application process. The impact can include arbitrary code execution, data theft, file modification, lateral movement, and service disruption.
Why it matters to the business
Organizations running Windows-hosted services, automation workers, CI/CD systems, media processing pipelines, developer tooling, or web applications that use affected runtimes or libraries may be exposed to full system compromise if untrusted input reaches process-spawning code. Because the affected ecosystem includes widely used technologies such as Node.js, PHP, Rust, Haskell process libraries, yt-dlp integrations, and Windows process creation behavior, exposure may exist indirectly through dependencies rather than in obvious application code. Although this CVE is not currently listed in CISA KEV and has no known mature exploit status in the provided data, the CVSS score is critical and the EPSS score indicates non-trivial exploitation interest, so internet-facing or automation-heavy Windows workloads should be prioritized.
How an attack unfolds
An attacker first identifies an application feature that accepts external input and causes the server or local agent to launch another program on Windows. Common examples include file conversion, archive extraction, media download or transcoding, package/build automation, job runners, administrative tooling, and integrations that call helper scripts. The attacker then supplies crafted input containing Windows command metacharacters or argument structures that survive application validation and reach the process creation call. When the affected runtime or library invokes CreateProcess, particularly when batch files or shell-like behavior are involved, the crafted argument may be reinterpreted by cmd.exe or Windows command-line parsing as additional commands. The injected command then runs under the privileges of the vulnerable application, allowing the attacker to read files, write payloads, create users, launch reverse shells, tamper with logs, or disrupt services.
How to fix it
Apply vendor updates for all affected runtimes, libraries, and applications that may run on Windows, including Haskell process library, Node.js, PHP, Rust, yt-dlp, and software that embeds or depends on them. No exact fixed versions were provided in the input, so remediation should be based on the latest vendor security advisories and currently supported patched releases. Inventory Windows applications that spawn processes and prioritize patching internet-facing services, build/automation workers, and systems processing untrusted files or URLs. Where immediate patching is not possible, avoid invoking .bat or .cmd files with untrusted input, avoid shell invocation, pass arguments as structured argument arrays where the runtime guarantees safe escaping, strictly allowlist command arguments, reject Windows command metacharacters where appropriate, and run affected services under least-privileged accounts. Consider replacing batch-file wrappers with native executables or hardened scripts that do not require cmd.exe parsing.
How to confirm the fix worked
Confirm that all affected language runtimes, libraries, packaged applications, and container/base images used on Windows have been upgraded to versions identified by the respective vendors as fixed. Review dependency manifests, lockfiles, SBOMs, and installed runtime versions for Node.js, PHP, Rust toolchains or crates, Haskell process dependencies, yt-dlp, and any applications that bundle them. Validate application code paths that launch child processes by testing with benign command-injection probes containing Windows metacharacters such as ampersand, pipe, redirection, percent expansion, delayed expansion, and quote-boundary payloads; the application should treat them as literal data or reject them, not execute secondary commands. On Windows hosts, audit process creation telemetry to verify that application processes are not spawning unexpected cmd.exe, powershell.exe, wscript.exe, cscript.exe, mshta.exe, certutil.exe, curl.exe, bitsadmin.exe, or other living-off-the-land tools as a result of user-controllable actions.
Typical attack path
- Find a Windows-hosted application or service feature that launches external commands, scripts, batch files, or helper tools.
- Identify an input parameter that is incorporated into the command path, command argument list, environment, filename, URL, media metadata, job definition, or build instruction.
- Craft input containing Windows command-control characters, quoting tricks, or batch-file argument payloads that alter the intended command execution.
- Submit the payload through the exposed application interface, API, webhook, file upload, queue message, or automation trigger.
- Cause the affected runtime or library to call CreateProcess with unsafe command construction or unsafe batch/script invocation behavior.
- Execute arbitrary commands as the vulnerable application account.
- Establish persistence, access sensitive data, modify application files, pivot to adjacent systems, or cause denial of service.
How to detect it
To determine whether exploitation already occurred, review Windows process creation telemetry from Sysmon Event ID 1, Windows Security Event ID 4688, EDR process trees, PowerShell logs, application logs, web/API access logs, job-runner logs, and CI/CD or media-processing logs. Focus on parent processes associated with affected applications or runtimes, such as node.exe, php.exe, application-specific executables, yt-dlp wrappers, build agents, web servers, or service accounts spawning command interpreters or administrative utilities unexpectedly. Investigate command lines containing Windows shell metacharacters, chained commands, redirection, environment-variable expansion, encoded PowerShell, file downloads, archive extraction, credential dumping tools, user creation, firewall changes, scheduled task creation, or service installation. Correlate suspicious process launches with preceding external requests, uploaded filenames, media URLs, job definitions, webhook payloads, queue messages, or API parameters. Because this vulnerability does not produce a unique network signature or file artifact, detection should be behavior-based and centered on unexpected child-process execution from application contexts that should not be running shell commands.
What your security team should do
- Prioritize inventory of Windows systems and applications that use affected runtimes or libraries and expose process-spawning functionality to untrusted users or files.
- Patch or upgrade affected products using vendor advisories; because no fixed versions were supplied, validate against current upstream security releases rather than assuming a specific version is safe.
- Search application code and dependency usage for process execution patterns involving CreateProcess, child_process, Command, Process, proc_open, system-like wrappers, .bat, .cmd, or shell execution.
- Temporarily disable or restrict high-risk features that invoke external commands using user-controlled input, especially file processing, media download/conversion, CI jobs, and administrative automation endpoints.
- Enforce least privilege for Windows services and automation accounts so command execution does not immediately grant administrative or domain-level access.
- Deploy or tune EDR/SIEM detections for unexpected command interpreters or living-off-the-land binaries spawned by web servers, application servers, job runners, package managers, and media-processing tools.
- Review historical process creation logs for suspicious child processes from affected applications, focusing on post-exploitation commands, payload downloads, credential access, and persistence actions.
- Add regression tests for Windows command execution handling so future dependency or runtime changes do not reintroduce unsafe shell parsing behavior.
The record
A command inject vulnerability allows an attacker to perform command injection on Windows applications that indirectly depend on the CreateProcess function when the specific conditions are satisfied.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Bitnami | node | 1.77.2 | 18.19.0 |
| Bitnami | node-min | 1.77.2 | 18.20.5 |
| Hackage | process | 1.0.0.0 | 1.6.19.0 |
| Hackage | process | 1.0.0.0 | 1.6.23.0 |
Related vulnerabilities
- HSEC-2024-0003 process: command injection via argument list on Windows Same vulnerability
- CVE-2025-59465 A malformed `HTTP/2 HEADERS` frame with oversized, invalid `HPACK` data can cause Node.js… Also affects node
- CVE-2025-59466 We have identified a bug in Node.js error handling where "Maximum call stack size… Also affects node
- CVE-2025-55132 A flaw in Node.js's permission model allows a file's access and modification timestamps… Also affects node
- CVE-2025-59464 A memory leak in Node.js’s OpenSSL integration occurs when converting `X.509` certificate… Also affects node
- CVE-2025-55131 A flaw in Node.js's buffer allocation logic can expose uninitialized memory when… Also affects node
- CVE-2025-55130 A flaw in Node.js’s Permissions model allows attackers to bypass `--allow-fs-read` and… Also affects node
- CVE-2025-27210 An incomplete fix has been identified for CVE-2025-23084 in Node.js, specifically… Also affects node