CVE-2026-100369
Received
Received - Intake
Command Injection in CliInvoke .NET Library
Vulnerability report for CVE-2026-100369, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.
Publication date: 2026-09-25
Last updated on: 2026-09-25
Assigner: GitHub, Inc.
Description
Description
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`.
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| alastairlundy | cliinvoke | From 2.0.0 (inc) to 2.8.4 (inc) |
| alastairlundy | cliinvoke | From 2.9.0 (inc) to 2.9.3 (inc) |
| alastairlundy | cliinvoke | From 2.10.0 (inc) to 2.10.4 (inc) |
| alastairlundy | cliinvoke | From 3.0.0-alpha.1 (inc) to 3.0.0-beta.1 (inc) |
| alastairlundy | cliinvoke | to 2.8.5 (exc) |
| alastairlundy | cliinvoke | to 2.9.4 (exc) |
| alastairlundy | cliinvoke | to 2.10.5 (exc) |
| alastairlundy | cliinvoke | to 3.0.0-beta.2 (exc) |
| alastairlundy | cliinvoke | to 2.0.2 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-88 | The product constructs a string for a command to be executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string. |