Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
.NET
.NET NuGet
Not in CISA KEV
HIGH severity

CVE-2026-100369 — CliInvoke

HIGHFix: alastairlundy/CliInvoke@1e98582

CVE-2026-100369 is a high-severity (CVSS 8.4) CWE-88 vulnerability in CliInvoke. A fix is available for CliInvoke — see the affected versions and patch details below.

CliInvoke: Argument Injection in Extensibility Runner Factory

Also known asGHSA-j73w-8hfr-4gc9
Published
Updated
Affected
5 pkgs
Patched
5 / 5
Exploits
None indexed
Exploitation data as of Oct 19, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • A successful exploit gives an attacker total control of the affected component, not partial access.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-100369.

EPSS Exploitation Probability

via FIRST.org ↗
0.4%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs28th percentile — riskier than 28% of all scored CVEsHighest risk
0.00%0.29%0.57%0.86%0.4%0.4%Oct 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

CVE-2026-100369 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.

Where this sits among everything scored

Of 394,415 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.

Real-World Exposure

5 pkgs affected
.NETCliInvoke.NETCliInvoke.NETCliInvoke.NETCliInvoke.NETAlastairLundy.CliInvoke

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects NuGet packages — download data is not available via public APIs for these ecosystems.

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.

Affected Packages

5 total 5 fixed
EcosystemPackageVulnerable rangeFix
.NETNuGetCliInvoke≥ 2.0.0&&< 2.8.52.8.5dotnet add package CliInvoke --version 2.8.5
.NETNuGetCliInvoke≥ 2.9.0&&< 2.9.42.9.4dotnet add package CliInvoke --version 2.9.4
.NETNuGetCliInvoke≥ 2.10.0&&< 2.10.52.10.5dotnet add package CliInvoke --version 2.10.5
.NETNuGetCliInvoke≥ 3.0.0-alpha.1&&< 3.0.0-beta.23.0.0-beta.2dotnet add package CliInvoke --version 3.0.0-beta.2
.NETNuGetAlastairLundy.CliInvoke≥ 2.0.0-alpha.1&&< 2.0.22.0.2dotnet add package AlastairLundy.CliInvoke --version 2.0.2

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for CliInvoke, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update CliInvoke to 2.8.5 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-100369 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

Frequently Asked Questions

### Impact An argument-injection vulnerability exists in the `CliInvoke` package's runner factory: `RunnerProcessFactory` on the 2.x line and `RunnerConfigurationFactory` on the 3.x line. The factory joins the runner arguments, the caller's target, and the caller's arguments into a single `ProcessStartInfo.Arguments` string and hands it to the OS. The OS command-line parser re-tokenizes the string before the runner sees it. A double quote (`"`) in the target or in any argument closes the OS-level quoted region and lets the next character enter argv as a separate element. ### Patches Upgrade
O3 Security · Impact-Aware SCA

Is CVE-2026-100369 in your dependencies?

Find it across NuGet, including transitive dependencies.

CVE-2026-100369: CliInvoke — Fixed in 2.8.5