CVE-2026-42284 GitPython: Unsafe option check validates multi_options before shlex.split transforms it
Attackers can execute arbitrary code during Git clone operations by bypassing option validation in GitPython, allowing malicious hooks to run.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-42284?
CVE-2026-42284 is a high-severity command injection vulnerability in gitpython-developers GitPython, published on 7 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.47, _clone() validates multi_options as the original list, then executes shlex.split(" ".join(multi_options)). A string like "--branch main --config core.hooksPath=/x" passes validation (starts with --branch), but after split becomes ["--branch", "main", "--config", "core.hooksPath=/x"]. Git applies the config and executes attacker hooks during clone. This issue has been patched in version 3.1.47.
Weakness: CWE-88
Which versions are affected by CVE-2026-42284?
3 open source packages ship an affected version, including gitpython and GitPython. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
gitpython PyPI | All versions | 3.1.47 |
gitpython PyPI | All versions | 3.1.47 |
GitPython PyPI | All versions | 3.1.47 |
Products include Gitpython Project Gitpython.
How do I fix CVE-2026-42284?
Upgrade gitpython to 3.1.47 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-42284 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-42284 exists.
Other vulnerabilities in gitpython-developers GitPython
- CVE-2023-40267 GitPython vulnerable to remote code execution due to insufficient sanitization of input arguments
- CVE-2026-78676 GitPython before 3.1.59 Remote Code Execution via Config Injection
- CVE-2026-67324 GitPython 3.1.50 Authentication Bypass via Joined Short Options
- CVE-2026-42215 GitPython: Command injection via Git options bypass
- CVE-2026-87817 GitPython before 3.1.60 Remote Code Execution via Git Directory Impersonation
Sources
Also known as DEBIAN-CVE-2026-42284, ECHO-ccb7-6d4f-be3e, GHSA-x2qx-6953-8485, MINI-242j-jwxh-4f7q, MINI-f45q-qwvr-xcrv, PYSEC-2026-2161 and 2 more.