{"vulnerability": "GHSA-WVPP-8HX9-P66J", "sightings": [{"uuid": "c43e0030-00a6-48df-88d4-ffcfaa386e41", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "GHSA-WVPP-8HX9-P66J", "type": "seen", "source": "https://gist.github.com/alon710/7b081fe119ed64f00c308eff03c67cc3", "content": "# GHSA-WVPP-8HX9-P66J: GHSA-WVPP-8HX9-P66J: Arbitrary Command Execution via Option Guard Bypass in GitPython\n\n&gt; **CVSS Score:** 9.8\n&gt; **Published:** 2026-08-07\n&gt; **Full Report:** https://cvereports.com/reports/GHSA-WVPP-8HX9-P66J\n\n## Summary\nAn unsafe option guard bypass vulnerability exists in GitPython before version 3.1.58. When keyword arguments are passed to Git commands with split_single_char_options=False, GitPython's argument validation helper fails to inspect the combined short-option value. This discrepancy allows short-option token smuggling or clustering manipulation, enabling remote attackers to bypass option blocklists and execute arbitrary system commands.\n\n## TL;DR\nGitPython prior to 3.1.58 allows arbitrary command execution when executing git commands with split_single_char_options=False due to validation desynchronization.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-88\n- **Attack Vector**: Network\n- **CVSS v3.1**: 9.8 (Critical)\n- **EPSS Score**: N/A\n- **Impact**: Remote Command Execution (RCE)\n- **Exploit Status**: Proof of Concept (PoC)\n- **CISA KEV Status**: Not Listed\n\n## Affected Systems\n\n- GitPython\n- **GitPython**: &lt; 3.1.58 (Fixed in: `3.1.58`)\n\n## Mitigation\n\n- Upgrade GitPython to version 3.1.58 or higher.\n- Sanitize all user-controlled keyword arguments before passing them to GitPython APIs.\n- Implement process isolation by running GitPython in containerized low-privilege environments with restricted network policies.\n\n**Remediation Steps:**\n1. Identify all Python projects utilizing GitPython by inspecting requirements.txt, setup.py, or poetry.lock.\n2. Execute command 'pip install --upgrade GitPython&gt;=3.1.58' to update the library.\n3. Review source code for instances where GitPython wrappers (e.g., clone, fetch, pull) are called with custom keyword arguments and 'split_single_char_options=False'.\n4. Deploy static analysis rules (such as Semgrep) to enforce secure configurations across developer repositories.\n\n## References\n\n- [GitPython Fix Commit](https://github.com/gitpython-developers/GitPython/commit/96a888f4d782cb2f80452148e48e60ce4af6d541)\n- [GitPython Pull Request #2204](https://github.com/gitpython-developers/GitPython/pull/2204)\n- [GitPython 3.1.58 Release Announcement](https://github.com/gitpython-developers/GitPython/releases/tag/3.1.58)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/GHSA-WVPP-8HX9-P66J) - Automated Vulnerability Intelligence*", "creation_timestamp": "2026-08-07T16:40:33.716893Z"}]}