CVE-2023-40590
CVE-2023-40590 · Untrusted search path on Windows systems leading to arbitrary code execution
This page contains facts from public vulnerability sources. Check the original advisory before updating.
GitPython is a python library used to interact with Git repositories. When resolving a program, Python/Windows look for the current working directory, and after that the PATH environment. GitPython defaults to use the `git` command, if a user runs GitPython from a repo has a `git.exe` or `git` executable, that program will be run instead of the one in the user's `PATH`. This is more of a problem on how Python interacts with Windows systems, Linux and any other OS aren't affected by this. But probably people using GitPython usually run it from the CWD of a repo. An attacker can trick a user to download a repository with a malicious `git` executable, if the user runs/imports GitPython from that directory, it allows the attacker to run any arbitrary commands. There is no fix currently available for windows users, however there are a few mitigations. 1: Default to an absolute path for the git program on Windows, like `C:\\Program Files\\Git\\cmd\\git.EXE` (default git path installation). 2: Require users to set the `GIT_PYTHON_GIT_EXECUTABLE` environment variable on Windows systems. 3: Make this problem prominent in the documentation and advise users to never run GitPython from an untrusted repo, or set the `GIT_PYTHON_GIT_EXECUTABLE` env var to an absolute path. 4: Resolve the executable manually by only looking into the `PATH` environment variable.
CVSS 7.8 · High · EPSS 0.5% · Fix available
- Published
- Updated
Affected products and versions
gitpython
- Versions
- <= 3.1.32: Affected
No fix published
gitpython PyPI
- Versions
- 0.1.7
- 0.2.0-beta1
- 0.3.0-beta1
- 0.3.0-beta2
- 0.3.1-beta2
- 0.3.2
- 0.3.2.1
- 0.3.2.RC1
- 0.3.3
- 0.3.4
- 0.3.5
- 0.3.6
- 0.3.7
- 1.0.0
- 1.0.1
- 1.0.2
- 2.0.0
- 2.0.1
- 2.0.2
- 2.0.3
- 2.0.4
- 2.0.5
- 2.0.6
- 2.0.7
- 2.0.8
- 2.0.9
- 2.0.9.dev0
- 2.0.9.dev1
- 2.1.0
- 2.1.1
- 2.1.10
- 2.1.11
- 2.1.12
- 2.1.13
- 2.1.14
- 2.1.15
- 2.1.2
- 2.1.3
- 2.1.4
- 2.1.5
- 2.1.6
- 2.1.7
- 2.1.8
- 2.1.9
- 3.0.0
- 3.0.1
- 3.0.2
- 3.0.3
- 3.0.4
- 3.0.5
- 3.0.6
- 3.0.7
- 3.0.8
- 3.0.9
- 3.1.0
- 3.1.1
- 3.1.10
- 3.1.11
- 3.1.12
- 3.1.13
- 3.1.14
- 3.1.15
- 3.1.16
- 3.1.17
- 3.1.18
- 3.1.19
- 3.1.2
- 3.1.20
- 3.1.22
- 3.1.23
- 3.1.24
- 3.1.25
- 3.1.26
- 3.1.27
- 3.1.28
- 3.1.29
- 3.1.3
- 3.1.30
- 3.1.31
- 3.1.32
- 3.1.4
- 3.1.5
- 3.1.6
- 3.1.7
- 3.1.8
- 3.1.9
- Affected ranges
- ECOSYSTEM: < 3.1.33
Update to 3.1.33
python-git Ubuntu:Pro:14.04:LTS
- Versions
- 0.3.2~RC1-2
- 0.3.2~RC1-3
- 0.3.2~RC1-3ubuntu0.1~esm1
- 0.3.2~RC1-3ubuntu0.1~esm2
- 0.3.2~RC1-3ubuntu0.1~esm3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:16.04:LTS
- Versions
- 1.0.1+git137-gc8b8379-1
- 1.0.1+git137-gc8b8379-2
- 1.0.1+git137-gc8b8379-2.1
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm1
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm2
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:18.04:LTS
- Versions
- 2.1.5-1
- 2.1.6-1
- 2.1.7-1
- 2.1.8-1
- 2.1.8-1ubuntu0.1~esm1
- 2.1.8-1ubuntu0.1~esm2
- 2.1.8-1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:20.04:LTS
- Versions
- 2.1.11-1
- 3.0.4-1
- 3.0.5-1
- 3.0.7-1
- 3.0.7-1ubuntu0.1~esm1
- 3.0.7-1ubuntu0.1~esm2
- 3.0.7-1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:22.04:LTS
- Versions
- 3.1.14-1
- 3.1.23-1
- 3.1.24-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published