GHSA-j73w-8hfr-4gc9: High severity nuget/AlastairLundy.CliInvoke vulnerability

Published Sep 25, 2026
·
Updated

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 to:

- 2.8.5 (2.8.x line) - 2.9.4 (2.9.x line) - 2.10.5 (2.10.x line) - 3.0.0-beta.2 (3.x pre-release line)

Workarounds No complete workaround is available. Until you can upgrade:

- Strip " from any target or argument before passing it to the factory. On shell runners, also strip ;, |, &, $, backtick, and parentheses. - Or bypass the factory entirely and build the ProcessConfiguration directly. Set ArgumentList explicitly to the argv you want the runner to receive.

These are partial mitigations. They shift the quoting problem to your code.

Affected Software

5 affected componentsFixes available
nuget/AlastairLundy.CliInvoke>=2.0.0-alpha.1<=2.0.0
2.0.2
nuget/CliInvoke>=3.0.0-alpha.1<=3.0.0-beta.1
3.0.0-beta.2
nuget/CliInvoke>=2.10.0<=2.10.4
2.10.5
nuget/CliInvoke>=2.9.0<=2.9.3
2.9.4
nuget/CliInvoke>=2.0.0<=2.8.4
2.8.5

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade nuget/AlastairLundy.CliInvoke to a version that resolves this vulnerability.

    Fixed in 2.0.2
  2. Upgrade

    Upgrade nuget/CliInvoke to a version that resolves this vulnerability.

    Fixed in 3.0.0-beta.2
  3. Upgrade

    Upgrade nuget/CliInvoke to a version that resolves this vulnerability.

    Fixed in 2.10.5
  4. Upgrade

    Upgrade nuget/CliInvoke to a version that resolves this vulnerability.

    Fixed in 2.9.4
  5. Upgrade

    Upgrade nuget/CliInvoke to a version that resolves this vulnerability.

    Fixed in 2.8.5
  6. Upgrade

    Upgrade RunnerProcessFactory to a version that resolves this vulnerability.

    Fixed in 2.10.5
  7. Upgrade

    Upgrade RunnerProcessFactory to a version that resolves this vulnerability.

    Fixed in 2.8.5
  8. Upgrade

    Upgrade RunnerProcessFactory to a version that resolves this vulnerability.

    Fixed in 2.9.4
  9. Upgrade

    Upgrade RunnerConfigurationFactory to a version that resolves this vulnerability.

    Fixed in 3.0.0-beta.2
  10. Configuration

    Set ArgumentList explicitly to the argv the runner should receive instead of passing a combined command-line string.

    ProcessStartInfo ArgumentList = Explicit argv elements
  11. Compensating control

    Bypass the factory entirely and build the ProcessConfiguration directly.

  12. Compensating control

    Strip double quotes (") from every target and argument before passing them to the factory; on shell runners, also strip semicolons (;), pipes (|), ampersands (&), dollar signs ($), backticks, and parentheses.

Event History

Sep 25, 2026
Advisory Published
via GitHub·09:41 PM
Data Sourced
via GitHub·09:41 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which applications are exposed to this issue?

Applications using CliInvoke's runner factory are exposed: RunnerProcessFactory in the 2.x line or RunnerConfigurationFactory in the 3.x line. Exposure occurs when caller-controlled or otherwise untrusted data can reach the target or argument values passed to the factory.

2

What does an attacker need to exploit it?

An attacker needs a way to place a double quote character in the runner target or in any argument passed through the affected factory. The quote can terminate OS-level quoting and cause subsequent characters to be parsed as separate argv elements before the runner receives them.

3

Are there any mitigations if upgrading is not immediately possible?

There is no complete workaround. As partial mitigation, strip double quotes from targets and arguments; for shell runners, also strip semicolons, pipes, ampersands, dollar signs, backticks, and parentheses. Alternatively, bypass the factory and construct ProcessConfiguration directly with ArgumentList set to the intended argv.

4

Which versions contain fixes?

Upgrade 2.8.x deployments to 2.8.5, 2.9.x deployments to 2.9.4, 2.10.x deployments to 2.10.5, or 3.x pre-release deployments to 3.0.0-beta.2.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203