{"items":[{"id":"NVI-00016332","kind":"vulnerability","title":"GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enables arbitrary command execution","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-r9mr-m37c-5fr3"],"plain_summary":"GitHub lists this reviewed advisory for GitPython. 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-68a10e9382be473f472f1473c1aa4db8"],"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-07-24T16:42:57.000Z","value":"8.8 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-68a10e9382be473f472f1473c1aa4db8"}],"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-68a10e9382be473f472f1473c1aa4db8","url":"https://github.com/advisories/GHSA-r9mr-m37c-5fr3","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-r9mr-m37c-5fr3","publisher":"GitHub Advisory Database","observed_at":"2026-11-03T09:59:13.529Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-68a10e9382be473f472f1473c1aa4db8"],"technology":"GitPython","known_exclusions":[],"conditions_summary":"## Summary\nGitPython's `check_unsafe_options` guard (the control introduced by CVE-2026-42215 / GHSA-2f96 and hardened since) can be bypassed for **every** guarded method (`clone`/`clone_from`, `fetch`/`pull`/`push`, `ls_remote`, `iter_commits`, `blame`, `archive`) by smuggling an option token inside the VALUE of a single-character kwarg. In the default `allow_unsafe_options=False` configuration this yields arbitrary command execution via `--upload-pack`.\n\n## Root Cause\nThe guard builds its candidate option list from kwarg KEYS only: `_option_candidates([], {\"n\":\"--upload-pack=\"})` returns `['-n']` (cmd.py:1042-1046 derives the candidate from the key, never the value). `-n` is not on the denylist, so `check_unsafe_options` passes. But `transform_kwarg('n', value, split_single_char_options=True)` (cmd.py:1600-1606) emits **two** argv tokens `['-n', '--upload-pack=']`. git then parses the second token as `--upload-pack` and executes the attacker-supplied command. The guard never inspects the value that becomes a separate argv token.\n\n## Impact\nArbitrary OS command execution as the host process (via `--upload-pack`) in the default configuration, affecting all guarded methods","public_affected_ranges":["<= 3.1.53"]}],"null_published_at":"2026-11-04T10:04:27.933Z","source_updated_at":"2026-07-24T16:42:57.000Z","source_disclosed_at":"2026-07-24T16:42:57.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-03T09:59:13.529Z"}],"next_cursor":null,"snapshot_revision":"42594"}