CliInvoke: Argument Injection in Extensibility Runner Factory
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 2.8.5, 2.9.4, 2.10.5, 3.0.0-beta.2, 2.0.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
CliInvoke and its formerly named `AlastairLundy.CliInvoke` package are .NET libraries for invoking command-line programs and wrapping executable processes. `CliInvoke` versions 2.0.0 through 2.8.4, 2.9.0 through 2.9.3, 2.10.0 through 2.10.4, and 3.0.0-alpha.1 through 3.0.0-beta.1, as well as `AlastairLundy.CliInvoke` versions 2.0.0-alpha.1 through 2.0.0, contain an argument-injection vulnerability in `RunnerProcessFactory` on the 2.x line and `RunnerConfigurationFactory` on the 3.x line. These factories combine runner arguments, a caller-controlled target, and caller-controlled arguments into one `ProcessStartInfo.Arguments` string, allowing a double quote in the target or an argument to terminate an operating-system-level quoted region and inject unintended elements into the runner’s argument vector, potentially resulting in arbitrary command execution when a shell runner is used. The vulnerability is patched in `CliInvoke` versions 2.8.5, 2.9.4, 2.10.5, and 3.0.0-beta.2, and in `AlastairLundy.CliInvoke` version 2.0.2. No complete workaround is available; users unable to upgrade can partially mitigate the issue by removing double quotes from targets and arguments, additionally removing shell metacharacters when using shell runners, or bypassing the vulnerable factory and constructing a `ProcessConfiguration` with an explicit `ArgumentList`.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- alastairlundy CliInvoke
From 2.0.0 · through 2.8.4; From 2.9.0 · through 2.9.3; From 2.10.0 · through 2.10.4; From 3.0.0-alpha.1 · through 3.0.0-beta.1
- alastairlundy AlastairLundy.CliInvoke
From 2.0.0-alpha.1 · through 2.0.0
- CliInvokeNuGet
From 2.0.0 · fixed in 2.8.5
- CliInvokeNuGet
From 2.9.0 · fixed in 2.9.4
- CliInvokeNuGet
From 2.10.0 · fixed in 2.10.5
- CliInvokeNuGet
From 3.0.0-alpha.1 · fixed in 3.0.0-beta.2
- AlastairLundy.CliInvokeNuGet
From 2.0.0-alpha.1 · fixed in 2.0.2