{"items":[{"id":"NVI-00013102","kind":"vulnerability","title":"CliInvoke: Argument Injection in Extensibility Runner Factory","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-j73w-8hfr-4gc9","CVE-2026-100369"],"plain_summary":"GitHub lists this reviewed advisory for CliInvoke, CliInvoke, CliInvoke, CliInvoke, AlastairLundy.CliInvoke. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-09-25T21:41:37.000Z","value":"8.4 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-609fa55a6d8f3a1381a7f91f72d84b2e"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-609fa55a6d8f3a1381a7f91f72d84b2e","url":"https://github.com/advisories/GHSA-j73w-8hfr-4gc9","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-j73w-8hfr-4gc9","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T07:24:25.558Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"technology":"CliInvoke","known_exclusions":[],"conditions_summary":"### Impact\nAn argument-injection vulnerability exists in the `CliInvoke`\npackage's runner factory: `RunnerProcessFactory` on the 2.x line and\n`RunnerConfigurationFactory` on the 3.x line.\n\nThe factory joins the runner arguments, the caller's target, and the\ncaller's arguments into a single `ProcessStartInfo.Arguments` string and\nhands it to the OS. The OS command-line parser re-tokenizes the string\nbefore the runner sees it. A double quote (`\"`) in the target or in any\nargument closes the OS-level quoted region and lets the next character\nenter argv as a separate element.\n\n### Patches\nUpgrade to:\n\n- **2.8.5** (2.8.x line)\n- **2.9.4** (2.9.x line)\n- **2.10.5** (2.10.x line)\n- **3.0.0-beta.2** (3.x pre-release line)\n\n### Workarounds\nNo complete workaround is available. Until you can upgrade:\n\n- Strip `\"` from any target or argument before passing it to the\n  factory. On shell runners, also strip `;`, `|`, `&`, `$`, backtick,\n  and parentheses.\n- Or bypass the factory entirely and build the `ProcessConfiguration`\n  directly. Set `ArgumentList` explicitly to the argv you want the\n  runner to receive.\n\nThese are partial mitigations. They shift the quoting problem to your\ncode.","public_affected_ranges":[">= 2.0.0, <= 2.8.4"]},{"certainty":"source_listed","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"technology":"CliInvoke","known_exclusions":[],"conditions_summary":"### Impact\nAn argument-injection vulnerability exists in the `CliInvoke`\npackage's runner factory: `RunnerProcessFactory` on the 2.x line and\n`RunnerConfigurationFactory` on the 3.x line.\n\nThe factory joins the runner arguments, the caller's target, and the\ncaller's arguments into a single `ProcessStartInfo.Arguments` string and\nhands it to the OS. The OS command-line parser re-tokenizes the string\nbefore the runner sees it. A double quote (`\"`) in the target or in any\nargument closes the OS-level quoted region and lets the next character\nenter argv as a separate element.\n\n### Patches\nUpgrade to:\n\n- **2.8.5** (2.8.x line)\n- **2.9.4** (2.9.x line)\n- **2.10.5** (2.10.x line)\n- **3.0.0-beta.2** (3.x pre-release line)\n\n### Workarounds\nNo complete workaround is available. Until you can upgrade:\n\n- Strip `\"` from any target or argument before passing it to the\n  factory. On shell runners, also strip `;`, `|`, `&`, `$`, backtick,\n  and parentheses.\n- Or bypass the factory entirely and build the `ProcessConfiguration`\n  directly. Set `ArgumentList` explicitly to the argv you want the\n  runner to receive.\n\nThese are partial mitigations. They shift the quoting problem to your\ncode.","public_affected_ranges":[">= 2.9.0, <= 2.9.3"]},{"certainty":"source_listed","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"technology":"CliInvoke","known_exclusions":[],"conditions_summary":"### Impact\nAn argument-injection vulnerability exists in the `CliInvoke`\npackage's runner factory: `RunnerProcessFactory` on the 2.x line and\n`RunnerConfigurationFactory` on the 3.x line.\n\nThe factory joins the runner arguments, the caller's target, and the\ncaller's arguments into a single `ProcessStartInfo.Arguments` string and\nhands it to the OS. The OS command-line parser re-tokenizes the string\nbefore the runner sees it. A double quote (`\"`) in the target or in any\nargument closes the OS-level quoted region and lets the next character\nenter argv as a separate element.\n\n### Patches\nUpgrade to:\n\n- **2.8.5** (2.8.x line)\n- **2.9.4** (2.9.x line)\n- **2.10.5** (2.10.x line)\n- **3.0.0-beta.2** (3.x pre-release line)\n\n### Workarounds\nNo complete workaround is available. Until you can upgrade:\n\n- Strip `\"` from any target or argument before passing it to the\n  factory. On shell runners, also strip `;`, `|`, `&`, `$`, backtick,\n  and parentheses.\n- Or bypass the factory entirely and build the `ProcessConfiguration`\n  directly. Set `ArgumentList` explicitly to the argv you want the\n  runner to receive.\n\nThese are partial mitigations. They shift the quoting problem to your\ncode.","public_affected_ranges":[">= 2.10.0, <= 2.10.4"]},{"certainty":"source_listed","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"technology":"CliInvoke","known_exclusions":[],"conditions_summary":"### Impact\nAn argument-injection vulnerability exists in the `CliInvoke`\npackage's runner factory: `RunnerProcessFactory` on the 2.x line and\n`RunnerConfigurationFactory` on the 3.x line.\n\nThe factory joins the runner arguments, the caller's target, and the\ncaller's arguments into a single `ProcessStartInfo.Arguments` string and\nhands it to the OS. The OS command-line parser re-tokenizes the string\nbefore the runner sees it. A double quote (`\"`) in the target or in any\nargument closes the OS-level quoted region and lets the next character\nenter argv as a separate element.\n\n### Patches\nUpgrade to:\n\n- **2.8.5** (2.8.x line)\n- **2.9.4** (2.9.x line)\n- **2.10.5** (2.10.x line)\n- **3.0.0-beta.2** (3.x pre-release line)\n\n### Workarounds\nNo complete workaround is available. Until you can upgrade:\n\n- Strip `\"` from any target or argument before passing it to the\n  factory. On shell runners, also strip `;`, `|`, `&`, `$`, backtick,\n  and parentheses.\n- Or bypass the factory entirely and build the `ProcessConfiguration`\n  directly. Set `ArgumentList` explicitly to the argv you want the\n  runner to receive.\n\nThese are partial mitigations. They shift the quoting problem to your\ncode.","public_affected_ranges":[">= 3.0.0-alpha.1, <= 3.0.0-beta.1"]},{"certainty":"source_listed","source_ids":["sr-609fa55a6d8f3a1381a7f91f72d84b2e"],"technology":"AlastairLundy.CliInvoke","known_exclusions":[],"conditions_summary":"### Impact\nAn argument-injection vulnerability exists in the `CliInvoke`\npackage's runner factory: `RunnerProcessFactory` on the 2.x line and\n`RunnerConfigurationFactory` on the 3.x line.\n\nThe factory joins the runner arguments, the caller's target, and the\ncaller's arguments into a single `ProcessStartInfo.Arguments` string and\nhands it to the OS. The OS command-line parser re-tokenizes the string\nbefore the runner sees it. A double quote (`\"`) in the target or in any\nargument closes the OS-level quoted region and lets the next character\nenter argv as a separate element.\n\n### Patches\nUpgrade to:\n\n- **2.8.5** (2.8.x line)\n- **2.9.4** (2.9.x line)\n- **2.10.5** (2.10.x line)\n- **3.0.0-beta.2** (3.x pre-release line)\n\n### Workarounds\nNo complete workaround is available. Until you can upgrade:\n\n- Strip `\"` from any target or argument before passing it to the\n  factory. On shell runners, also strip `;`, `|`, `&`, `$`, backtick,\n  and parentheses.\n- Or bypass the factory entirely and build the `ProcessConfiguration`\n  directly. Set `ArgumentList` explicitly to the argv you want the\n  runner to receive.\n\nThese are partial mitigations. They shift the quoting problem to your\ncode.","public_affected_ranges":[">= 2.0.0-alpha.1, <= 2.0.0"]}],"null_published_at":"2026-11-01T07:29:12.921Z","source_updated_at":"2026-09-25T21:41:37.000Z","source_disclosed_at":"2026-09-25T21:41:36.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-01T07:24:25.558Z"}],"next_cursor":null,"snapshot_revision":"42594"}